帕拉米科随机需要30秒以上的时间来冲刺

2024-10-02 20:39:29 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是paramiko需要30多秒才能导入。这是从我到目前为止所做的测试中“随机”发生的。我运行这个脚本,它只会冻结30-60秒,然后最终会继续执行代码。我在debug中运行了它,它进入paramiko导入,并且不会移动到代码中的下一行(n)。你知道吗

一开始我认为可能是ssh会话没有正常关闭,但我不认为是这样。根据netstat的说法,ssh会话肯定是关闭的,在主机上几个小时没有使用之后就会发生这种情况。你知道吗

以下是相关信息:

  • 我有大约5个导入paramiko的python脚本,它们都有这个问题。你知道吗
  • 有时我可以运行这些脚本10次(甚至同时)没有问题,然后突然没有脚本将导入paramiko期间,它是不可导入的,所有的脚本只是冻结在导入(这总是接近我的脚本顶部)。你知道吗
  • 其他时候我早上醒来,运行这些脚本的主机已经12个小时没动过了,第一次运行其中一个脚本时,需要60秒才能导入paramiko。你知道吗
  • 这发生在生产主机(CentOS 7.5.1804)和实验室主机(CentOS 7.4.1708)上
  • 这发生在paramiko版本2.2.1、2.4.1和2.4.2上。你知道吗

我不得不从这个代码中去掉大约50行,但这基本上是使用paramiko的代码。请记住,这是在5个不同的脚本中使用的,因此其余的代码在所有这些脚本上都是完全不同的。你知道吗

#!/usr/bin/python
import sys
sys.modules['gssapi'] = None
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
    ssh.connect(osHost, username='root', password=osPassw, port=22)
except paramiko.SSHException:
    print "Connection to OS CLI Failed. Probably wrong password." + osHost
    quit()
stdin, stdout, stderr = ssh.exec_command(command)
commandOut = stdout.readlines()
print commandOut
ssh.close()

Tags: 代码import脚本paramikostdoutsyspasswordssh