在这里,我试图在远程服务器上执行命令并为每个命令取回其输出,但它需要一个单独的连接,但如果我创建单独的连接或会话,它对我的响应非常慢,
我正在尝试运行的代码是,但它不起作用:
import pysftp
import paramiko
commandlist = ("ls", "uname -a","whoami")
ans = []
sftp = pysftp.Connection("localhost",username="root",password="123456",port=22)
for i in commandlist:
try:
out = sftp.execute(i)
ans.append(out)
except (paramiko.ssh_exception.AuthenticationException,paramiko.ssh_exception.SSHException), e:
ans.append(e)
return ans
工作代码是:
import pysftp
import paramiko
commandlist = ("ls", "uname -a")
ans = []
for i in commandlist:
try:
sftp = pysftp.Connection("localhost",username="root",password="123456",port=222)
out = sftp.execute(i)[0]
ans.append(out)
except (paramiko.ssh_exception.AuthenticationException,paramiko.ssh_exception.SSHException), e:
ans.append(e)
return ans
现在在这里它为每个要执行的命令创建连接,请帮助我,让我知道这是否可以由其他库(如 paramiko 或 fabric)完成,以及如何。
谢谢。