如何使 SSHPASS 不等待發送命令的結果並斷開連接?

如何使 SSHPASS 不等待發送命令的結果並斷開連接?

我正在使用 SSHPASS 透過臨時 IP 來配置基於 Linux 的設備,以實現自動化目的。

sshpass -p $TARGET_password ssh -o StrictHostKeyChecking=no $TARGET_username@$TARGET_IP 'bash -s' < $configfile

我正在發送一個包含一堆命令的腳本,最後一個是配置永久 IP。

一旦腳本更改 IP,它就會掛起,因為它丟失了與臨時 IP 的會話。

那麼是否可以發送更改IP的命令並立即斷開連接而不等待任何返回。

答案1

讓它斷開連接它改變了地址。例如,讓最後一個命令與&操作符一起在背景運行,可能是這樣的:

( (sleep 1; ip addr change ...) &)

SSHPASS 沒有好辦法知道它是否因為命令成功(並且 IP 更改)而沒有收到任何 ACK,或者是否因為命令封包尚未到達伺服器而沒有收到任何 ACK根本不(由於網路問題)。在前一種情況下,您希望它斷開連接,但在後一種情況下,它應該繼續重新傳輸未確認的資料包。

相關內容