我需要在一个脚本中使用pxssh
进行多个连接。
试图这样做:
import pxssh
ip = 'ip'
username = 'username'
password = 'password'
s = pxssh.pxssh()
s.login (ip, username, password)
s.sendline('command')
s.prompt()
print s.before
s.logout()
s.login(ip2, username, password)
etc
但是第二个连接出错:
AssertionError: The pid member must be None.
每次只传递一个连接。
如何让它工作?
最佳答案
您只需要创建一个新的pxsh对象。pxsh对象的构造函数创建一个进程并生成ssh。注销将断开与远程系统的连接,这将使连接无效,但不会重置对象。像这样的:
...
s.logout()
s.close()
s = pxssh.pxssh()
s.login(ip2, ...)
严格来说,s.close()不是必需的,但它是一个好主意,否则,在原始对象被垃圾收集之前,底层文件描述符将不会关闭。
关于python - Pxssh重新连接Python(pexpect),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25308482/