【问题标题】:Python Paramiko SSH session not active after being idle for many hoursPython Paramiko SSH 会话在空闲数小时后未激活
【发布时间】:2020-09-05 14:56:32
【问题描述】:

我正在使用 Python Paramiko ssh.exec_command 从主机(从 CentOS 到 CentOS)向从机发送命令。主机将命令发送给从机并等待(睡眠或做一些有意义的事情)以由从机完成。从站大约需要 10 个小时才能完成命令。 10 小时后,如果主服务器使用 ssh.exec_command 向从服务器发送下一个命令,我会收到一条错误消息,指出 SSH 会话未处于活动状态。 我尝试在主从端的ssh_config 文件中设置ServerAliveintervalTCPKeepAlive。但没有任何效果。我需要检查哪些其他可能性才能使 SSH 会话永远处于活动状态。

【问题讨论】:

    标签: python ssh tcp centos paramiko


    【解决方案1】:

    ServerAliveInterval 对 Paramiko 没有影响。

    使用Transport.set_keepalive:

    transport = client.get_transport()
    transport.set_keepalive(60)
    

    如果这没有帮助(通常是因为服务器忽略了保持活动),您必须自己保持会话活动。例如。通过使命令连续产生输出。

    【讨论】:

    • 有没有办法让连接保持新鲜
    • @Raj 这不是答案显示的吗?如果你的意思是别的,请发布新问题来解释你想要什么。
    • “你必须自己保持会话活跃。例如,通过使命令连续产生输出”。我正在寻找一个选项,我想在主脚本运行之前连续生成虚拟输出。
    • 我们不知道您正在运行什么命令。甚至你所说的“直到主脚本运行”。再次,请发布新的正确问题。有关上下文,请参阅此问题。
    猜你喜欢
    • 2015-10-07
    • 1970-01-01
    • 2017-08-27
    • 2017-07-14
    • 2019-12-24
    • 1970-01-01
    • 2010-12-27
    • 2011-05-19
    • 2018-01-19
    相关资源
    最近更新 更多