如何让 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 没有很好的方法来知道它没有收到任何 ACK 是因为命令成功(并且 IP 已更改),还是因为命令数据包尚未到达服务器根本(由于网络问题)。在前一种情况下,您希望它断开连接,但在后一种情况下,它应该继续重新传输未确认的数据包。

相关内容