Linux
如何處理我的 bash 腳本中的 ssh 命令掛起?
我正在開發一個分佈式 Linux 系統。在我的 bash 腳本中,我想 grep 的輸出:
ssh $ipaddress ibstat
如果機器停機,上述命令將掛起。如何處理掛起並退出具有非零值的 bash 腳本?
該
timeout
實用程序可能是您的選擇:timeout 5 ssh $ipaddress ibstat
將在 5 秒後以非零結果退出,將其設置為足以讓 ibstat 完成的合理值
使用
ConnectTimeOut
值較低的選項,您可能需要針對特定環境進行調整:$ ssh -o ConnectTimeout=2 $ipaddress ssh: connect to host 192.168.123.123 port 22: Connection timed out $ echo $? 255
您甚至可以得到一個可以測試的返回值 -
255
意味著處理命令時發生錯誤。