用于定期检查文件的Shell脚本

时间:2016-11-14 11:03:04

标签: bash shell unix ssh

我是Shell Script的新手。请帮忙。

进程正在特定位置创建触发器文件。我想检查是否已创建该文件。所以我正在编写一个shell脚本,可以安排在估计的过程结束时间之前15分钟运行。

        function go()
        {

            ssh -o StrictHostKeyChecking=no $SSH_User_IP      
            scp $PMROOT/NACO/SrcFiles/SDS/sds/sds_interface_core.trg $SSH_User_IP:$PMROOT_Fload/td_import/interface/sds/sds_interface_core.trg
            sleep 3                                                                                     
        }
        while true 
        do 
            go 
        done

我必须检查的位置是另一台我必须做ssh的unix机器。所以我需要的帮助是把事情放在一起,这样我的脚本就可以通过ssh连接并每1分钟检查一次触发文件。

2 个答案:

答案 0 :(得分:0)

Ssh返回远程命令的退出代码。这应该有效:

while true; do
    ssh username@remotehost "[ -e /path/to/file/to/check ]"
    if [ $? -eq 0 ]; then
        echo "file exists!"
        break
    fi
    sleep 60
done

哈努哈利

答案 1 :(得分:0)

这个怎么样?

while true; do
    ssh hostname "test -f /some/file" && { echo "file exists"; break; }
    sleep 60
done