我正在使用python paramiko ssh.exec_command从主机(从centos到centos)向从机发送命令。主设备将命令发送给从设备并等待(休眠或做一些有意义的事情),以便从设备完成。奴隶大约需要10个小时才能完成命令。如果主服务器使用ssh.exec_command将下一个命令发送到从服务器10小时后,我收到一条错误消息,指出SSH会话未激活。我尝试在主站和从站的ssh_config文件中设置ServerAliveinterval,TCPKeepAlive。但没有任何效果。我需要检查以保持ssh会话永远活动的所有其他可能性。
ServerAliveInterval
对Paramiko没有影响。
transport = client.get_transport()
transport.set_keepalive(60)
如果这没有用(通常是因为服务器忽略了keepalive),你必须自己保持会话活着。例如。通过使命令连续产生输出。