部分代码如下:
cmd = "sh %s"%file1 # 构造执行命令
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。
真是奇怪了。忘大神指点迷津。
有可能是cmd 执行的时间比较长, 有时候会超出exec_command timeout. 建议试着增加timeout。
stdin, stdout, stderr = ssh_client.exec_command(cmd, timeout=60)
谢谢,这个之前试过,好像不行。我当时也怀疑是超时了