如何通过循环中的scp检查远程机器上是否存在文件

时间:2011-07-27 14:01:02

标签: loops ssh scp

如何循环此代码:

if scp remote-host:~/myfile ./ >& /dev/null
then 
    echo "transfer OK"
else 
    sleep 20
fi

循环必须每隔20秒检查远程主机上的文件,如果文件出现循环必须退出。

2 个答案:

答案 0 :(得分:1)

尝试:

while true
    if scp remote-host:~/myfile ./ >&/dev/null;
      then echo "transfer OK"; 
    fi
    sleep 20;
done

答案 1 :(得分:1)

while true
do
    if scp remote-host:~/myfile . &> /dev/nul
    then
        echo "transfer OK"
        break
    fi
    sleep 30
done

或者,如果你喜欢更紧凑的东西:

while :; do 
    (scp remote-host:~/myfile . &> /dev/null) && break
    sleep 30
done
echo "transfer OK"

请注意:是一个带有零(成功)退出代码的内置null命令。