我正在使用paramiko模块从windows 7机器到unix机器进行ssh,然后在unix服务器上运行命令。该命令正确执行但面临一些特殊问题:
fs = open("D:\VAS\unixConnectionLog.txt","a+")
fs.write("File Written: \n")
请解决上述问题。是不是因为ssh连接没有正确关闭才能再次在Windows操作系统上执行操作?
代码:我使用下面的代码进行ssh连接。
import paramiko
sshObj = paramiko.SSHClient()
sshObj.set_missing_host_key_policy(paramiko.AutoAddPolicy())
sshObj.connect('10.106.174.40', username='root',password='abc',port=22)
stdin, stdout, stderr = sshObj.exec_command('uptime')
while not stdout.channel.exit_status_ready():
if stdout.channel.recv_exit_status()== 5:
print "Command Successfully Executed \n"
print stdout.readlines()
sshObj.close
答案 0 :(得分:0)
我有一些类似的问题。我确定你的代码仍然停留在类似于我的while循环中,因为paramiko在尝试退出之前不正确地处理线程。
尝试检查:
while not stdout.channel.exit_status_ready():
if stdout.channel.recv_exit_status()== 5:
print "Command Successfully Executed \n"
print "Still here in the while loop"
如果它显示"仍然是她在while循环",它可能是我遇到问题的错误 - 线程问题。看到print命令后,尝试按Enter键,你应该退出。
请参阅:
https://stackoverflow.com/a/450895/4629821
刚开始使用python,所以帮助不大,但我也试图找到解决问题的方法。希望它有所帮助