0

在这里,我试图在远程服务器上执行命令并为每个命令取回其输出,但它需要一个单独的连接,但如果我创建单独的连接或会话,它对我的​​响应非常慢,

我正在尝试运行的代码是,但它不起作用:

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)完成,以及如何。

谢谢。

4

0 回答 0