脚本:从远程机器读取文件并存储在 dir 变量中
Scripting: reading file from remote machine and store in dir variable
我有两台机器.. Im 运行 a bash shell 从远程机器我对机器执行 ssh(ssh 密钥已经共享)然后尝试读取一份文件。
但是,当我执行 ssh 时,它会进入提示符……等待一些命令,然后执行脚本的下一行。
Proc_m1_s1$ cat CleanCounters.txt
/root/karan/Logs/Counters/
/root/karan/Logs/Signalling/
脚本
while [ $i -le 12 ]
do
IP_Addr="IP$i"
ssh $UNAME@${!IP_Addr}
for dir in $(cat /root/karan/bin/CleanCounters.txt); do
find $dir -name "A*" -type f -mtime +60 |xargs rm -f
done
i=$(( i+1 ))
done
我通过以下方式得到结果...
[csbackup@muarchive BackupFolderNames]$ /home/csbackup/BackupFolderNames/CleanLogs_MUTUNDWE.sh
Last login: Tue Jun 23 11:13:14 2015 from o2net2
Proc_m1_s1$
Proc_m1_s1$ exit
logout
Connection to 10.0.0.1 closed.
cat: /root/karan/bin/CleanCounters.txt: No such file or directory*
任何人都可以帮助我,以便我可以远程 cat dir 变量中的文件行并在我的脚本中使用它
通过 ssh
执行远程命令如下(示例 cats /etc/hosts
并将其存储在局部变量中):
result=`ssh $UNAME@${!IP_Addr} "cat /etc/hosts"`
这将回答标题中所述的问题。对于 for
循环应用程序,您要么必须将整个命令写在一行中,要么将 multi-line 字符串作为 ssh
参数发送。当然,您会多次执行某项操作,从而导致多个输出。然后,此输出将存储在单个变量中。为了稍后将其拆分并将其分配给不同的循环值,请向输出添加一个 "separator string",稍后您可以使用它来拆分字符串。
以下命令会将远程文件输出存储在本地服务器变量 (dir) 中:
ssh -t user@servername "dir=$(cat /path/to/files ); echo "$out""
我有两台机器.. Im 运行 a bash shell 从远程机器我对机器执行 ssh(ssh 密钥已经共享)然后尝试读取一份文件。 但是,当我执行 ssh 时,它会进入提示符……等待一些命令,然后执行脚本的下一行。
Proc_m1_s1$ cat CleanCounters.txt
/root/karan/Logs/Counters/
/root/karan/Logs/Signalling/
脚本
while [ $i -le 12 ]
do
IP_Addr="IP$i"
ssh $UNAME@${!IP_Addr}
for dir in $(cat /root/karan/bin/CleanCounters.txt); do
find $dir -name "A*" -type f -mtime +60 |xargs rm -f
done
i=$(( i+1 ))
done
我通过以下方式得到结果...
[csbackup@muarchive BackupFolderNames]$ /home/csbackup/BackupFolderNames/CleanLogs_MUTUNDWE.sh
Last login: Tue Jun 23 11:13:14 2015 from o2net2
Proc_m1_s1$
Proc_m1_s1$ exit
logout
Connection to 10.0.0.1 closed.
cat: /root/karan/bin/CleanCounters.txt: No such file or directory*
任何人都可以帮助我,以便我可以远程 cat dir 变量中的文件行并在我的脚本中使用它
通过 ssh
执行远程命令如下(示例 cats /etc/hosts
并将其存储在局部变量中):
result=`ssh $UNAME@${!IP_Addr} "cat /etc/hosts"`
这将回答标题中所述的问题。对于 for
循环应用程序,您要么必须将整个命令写在一行中,要么将 multi-line 字符串作为 ssh
参数发送。当然,您会多次执行某项操作,从而导致多个输出。然后,此输出将存储在单个变量中。为了稍后将其拆分并将其分配给不同的循环值,请向输出添加一个 "separator string",稍后您可以使用它来拆分字符串。
以下命令会将远程文件输出存储在本地服务器变量 (dir) 中:
ssh -t user@servername "dir=$(cat /path/to/files ); echo "$out""