python调用paramiko模块处理远程linux机器shell脚本时结果不一致
在使用python的paramiko模块执行远程linux机器上的shell脚本时,遇到了一个奇怪的问题:第一次执行结果总是2,而第二次执行才正常为3。
问题代码如下:
cmd = "sh %s" % file1 # 构造执行命令 # 执行shell指令 stdin, stdout, stderr = ssh_client.exec_command(cmd) result = stdout.read().decode('utf-8') success_freq = result.count('success')
登录后复制
检查shell脚本输出内容中“success”字样的次数,如果为3,则为正常。但在定时执行程序时,第一次检查结果总是2,第二次检查才为3。
而手动登录到服务器上手工运行shell脚本,success字样的次数是3,这很奇怪。
立即学习“Python免费学习笔记(深入)”;
经过分析,发现可能的原因是exec_command执行时间较长,有时会超出默认超时时间。建议修改代码增加超时时间:
stdin, stdout, stderr = ssh_client.exec_command(cmd, timeout=60)
登录后复制
通过增加超时时间,问题得到解决。
以上就是Python Paramiko执行远程脚本结果不一致:第一次执行结果总是2,第二次才正常?的详细内容,更多请关注抖狐科技其它相关文章!
-
如何通过命令行打开防火墙
通过命令行打开 windows 防火墙的步骤如下:打开命令提示符并以管理员身份运行。输入命令:netsh firewall set opmode mode=enable profile=public。...
-
磁盘显示怎么打开 win11系统磁盘显示打开方法教程
想要在 win11 系统中查看磁盘显示,遇到了困难?不用着急,php小编鱼仔已经为你准备了一份详细的操作指南。本篇文章将一步一步指导你如何轻松开启磁盘显示功能,让你轻松监控磁盘的使用情况。继续阅读以下...
-
使用U盘装Win10系统:新手必看的详细图文教程
当你被过时的系统折磨得不堪重负时,给你的电脑来个大换血——重装系统势在必行!使用u盘安装windows 10是新手们的理想选择,因为它兼容性好、速度快,操作起来也毫不费力。php小编子墨手把手带你体验...
-
中国移动怎么终止活动套餐业务
通过以下方式终止中国移动活动套餐业务:1. 线上办理;2. 短信办理(发送"txtd"至10086);3. 客服热线办理(拨打10086)。注意,终止活动套餐后剩余权益将失效,可能需支付违约金,并需重...
-
嵌套边框元素为何会出现缝隙,以及如何解决?
为何存在缝隙? 当非整数缩放或非整数倍缩放时,即使是普通的嵌套 p 元素,在内部 p 和外部 p 的边框紧贴情况下,也会出现这种缝隙。 处理缝隙的解决方法避免此类布局:例如,不要在内部元素上添加背景色...