问题在于,paramiko需要30秒钟以上才能导入。到目前为止,这是“随机”发生的测试。我运行脚本,它冻结了30-60秒,然后最终将继续执行代码。我在调试中运行它,它进入了paramiko导入,并且不会移动到代码的下一行(n)。
起初我以为我的ssh会话可能无法正常关闭,但我认为情况并非如此。根据netstat,ssh会话肯定已关闭,并且可能在主机上闲置数小时后才发生。
以下是相关信息:
我不得不从这段代码中剥离掉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()