我想定期记录远程机器上特定接口的状态。以下代码可完成此工作。
#!/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 在执行过程中被中断,它就会卡住。我该如何克服这个问题?有没有其他方法可以在远程机器上执行命令并获取输出?谢谢。