目前,这是我的代码的外观。我不想每次都重新连接到远程主机来检查文件,我宁愿只进行一次连接,搜索所有文件然后退出。这方面的任何帮助都会有用!
for file in $FILE_LIST
do
FILE=`echo $file | cut -f1 -d"~"`
FILENAME=$FILE$YYYYMM
if ssh username@servername test -e some/directory/location/"$FILE$YYYYMM"*; then
echo "SUCCESS"
else
echo "FAILURE"
fi
done
答案 0 :(得分:0)
示例代码。
这会在第一个循环中生成您的文件名列表,并将所有名称都输入到一个SSH调用中。
SSH远程执行一个循环,该循环读取每个文件名并返回SUCCESS或FAILURE。
我已在成功/失败消息中包含了文件名,但如果您只是在查看是否存在失败条件,则可能不需要。
for file in $FILE_LIST
do
FILE=`echo $file | cut -f1 -d"~"`
echo $FILE$YYYYMM
done | ssh username@servername "
while read file
do
if test -e some/directory/location/\"\$file\"
then
echo \$file:SUCCESS
else
echo \$file:FAILURE
fi
done"
请记住小心引号和美元符号。将它们全部转义,因为它们必须在远程主机上进行评估。