Python Paramiko exec_command超时不起作用? - python

嗨,我收到了以下ssh命令,

    try:
        print 'trying to restart'
        self.ssh.exec_command(RR_CMD % (self.path_ext, self.rport), timeout=1)
        print 'restarted'
    except:
        self.ssh.close()
        self.ssh = ssh.create_ssh_client(self.ip, self.port, self. username, self.password)
        self.restart()

基本上,我正在尝试重新启动远程Perl脚本。
但是有时候,比如说2000年中有1个-我的python程序在exec_command行上冻结了有时长达几分钟!

我想使用超时功能,我将其设置为1秒,但是由于某些原因它不起作用...

参考方案

我遇到了exec_command超时问题,无法兑现我的期望。例如,我将超时设置为60,发现一个挂起的命令整夜运行。我以前在做的是

response = client.exec_command(command, timeout=60)
returncode = response[0].channel.recv_exit_status()

但是由于超时为None或任何值,它挂在recv_exit_status上,现在,我只是自己管理超时,因为exec_command是非阻塞的,通过轮询channel.exit_status_ready来实现。

start = time.time()
while time.time() < start + timeout:
    if response[0].channel.exit_status_ready():
        break
    time.sleep(1)
else:
    raise TimeoutError(f'{command} timed out on {hostname}')
returncode = response[0].channel.recv_exit_status()

exec()无法使用unicode字符 - python

我试图从我的python代码中执行.py程序,但是非ASCII字符在打印和处理时表现异常。module1.py:test = "áéíóúabcdefgçë" print(test) 主要代码:exec(open("module1.py").read(), globals()) 我希望它打印áéíóúabcdefgçë…

如何使用python和paramiko创建ssh隧道? - python

我正在学习python。我需要使用隧道创建者来从数据库中读取信息并关闭隧道。我使用paramiko,但是我没有使用tonelem示例。请举一个创建隧道的简单代码示例。提前致谢! 参考方案 在工作中,我们通常创建ssh隧道转发端口。我们这样做的方法是,使用标准命令ssh -L port:addr:port addr并在单独的线程中运行子进程。我找到了一个有用的…

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python:图像处理可产生皱纹纸效果 - python

也许很难描述我的问题。我正在寻找Python中的算法,以在带有某些文本的白色图像上创建皱纹纸效果。我的第一个尝试是在带有文字的图像上添加一些真实的皱纹纸图像(具有透明度)。看起来不错,但副作用是文本没有真正起皱。所以我正在寻找更好的解决方案,有什么想法吗?谢谢 参考方案 除了使用透明性之外,假设您有两张相同尺寸的图像,一张在皱纹纸上明亮,一张在白色背景上有深…

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…