我正在使用 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根本不(由於網路問題)。在前一種情況下,您希望它斷開連接,但在後一種情況下,它應該繼續重新傳輸未確認的資料包。