首页 新闻 会员 周边

python调用paramiko模块执行远程linux机器上的shell脚本第一次结果总是不对,第二次就对

0
[已解决问题] 解决于 2022-12-07 09:32

部分代码如下:
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。

真是奇怪了。忘大神指点迷津。

ray-bk的主页 ray-bk | 菜鸟二级 | 园豆:231
提问于:2022-08-01 14:40
< >
分享
最佳答案
0

有可能是cmd 执行的时间比较长, 有时候会超出exec_command timeout. 建议试着增加timeout。
stdin, stdout, stderr = ssh_client.exec_command(cmd, timeout=60)

奖励园豆:5
MissLi12138 | 菜鸟二级 |园豆:207 | 2022-11-25 09:34

谢谢,这个之前试过,好像不行。我当时也怀疑是超时了

ray-bk | 园豆:231 (菜鸟二级) | 2022-12-07 09:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册