Linux

如何處理我的 bash 腳本中的 ssh 命令掛起?

  • January 10, 2020

我正在開發一個分佈式 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意味著處理命令時發生錯誤。

引用自:https://unix.stackexchange.com/questions/561331