如果远程机器关闭,ssh 将挂起

如果远程机器关闭,ssh 将挂起

我想定期记录远程机器上特定接口的状态。以下代码可完成此工作。

#!/bin/bash
while [ "1" ]
do
    ifconfig usb0 &>/dev/null
    if [ "$(echo $?)" == "0" ]
    then
        sshpass -p passwd ssh -o ConnectTimeout=5 [email protected] ifconfig wave-data
    else
        echo "usb0 disconnected"
    fi
    sleep 0.2
done

远程机器通过 usb0 接口连接。我希望此代码是可靠的。因此,我通过频繁关闭和打开远程机器来测试它。问题是,有时当我关闭机器时,代码会卡住并且不会打印任何内容。我想如果 ssh 在执行过程中被中断,它就会卡住。我该如何克服这个问题?有没有其他方法可以在远程机器上执行命令并获取输出?谢谢。

相关内容