相关疑难解决方法(0)

Paramiko ssh 死/挂,输出大

我尝试使用 Paramiko 和 ssh 来备份服务器以调用tar命令。当文件数量有限时,一切正常,但当文件夹很大时,脚本会无休止地等待。下面的测试告诉我问题出在标准输出的大小上。

有没有办法纠正它并执行这种命令?

案例大输出:

query = 'cd /;ls -lshAR -h'
chan.exec_command(query)
while not chan.recv_exit_status():
    if chan.recv_ready():
        data = chan.recv(1024)
        while data:
            print data
            data = chan.recv(1024)

    if chan.recv_stderr_ready():
        error_buff = chan.recv_stderr(1024)
        while error_buff:
            print error_buff
            error_buff = chan.recv_stderr(1024)
    exist_status = chan.recv_exit_status()
    if 0 == exist_status:
        break
Run Code Online (Sandbox Code Playgroud)

结果是(不行 - 阻止 - 死??)

query = 'cd /;ls -lshAR -h'
chan.exec_command(query)
while not chan.recv_exit_status():
    if chan.recv_ready():
        data = chan.recv(1024)
        while data:
            print data
            data = chan.recv(1024)

    if chan.recv_stderr_ready(): …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

5
推荐指数
1
解决办法
2234
查看次数

如何将 Paramiko exec_commmand 作为字符串返回给 python 客户端

因此,我正在整理一些使用 Paramiko 来 ssh 到远程服务器并向远程连接发送命令的东西。到目前为止,一切进展顺利,除了我似乎无法让 Paramiko 以字符串形式返回执行命令的结果。Paramiko 返回看起来像是通道实例及其状态的内容。这就是我现在正在尝试的:

client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())


hostname = 'xxxx'
port = 'xxxxx'
user = 'xxxxx'
password = 'xxxxx'


client.connect(hostname,port,user,password)
do_something(client)






def do_something(client):

    object = client.exec_command('pwd')
    print(object)
Run Code Online (Sandbox Code Playgroud)

以下是我运行程序时 Paramiko 给出的输出:

  (<paramiko.ChannelFile from <paramiko.Channel 0 (open) window=2097152 -> 
  <paramiko.Transport at 0x6119f90 (cipher aes128-ctr, 128 bits) (active; 1 
   open chanel(s))>>>,
Run Code Online (Sandbox Code Playgroud)

所需的输出应该类似于:

 object = client.exec_command('pwd')
 print(object)
Run Code Online (Sandbox Code Playgroud)

输出:

  '/var/www/html'
Run Code Online (Sandbox Code Playgroud)

本质上,如果您输入命令,我怎样才能让 Paramiko 返回字符串值而不是对象实例?我尝试了几种不同的方法,但我似乎无法解决这个问题!请指教!非常感谢!

python string ssh remote-desktop paramiko

3
推荐指数
1
解决办法
6507
查看次数

标签 统计

paramiko ×2

python ×2

ssh ×2

remote-desktop ×1

string ×1