小编use*_*020的帖子

使用paramiko exec_command运行命令会导致进程在完成之前进入休眠状态

我正在使用python的paramiko模块SSH到远程机器和Tar/ZIP文件夹中有很多文件(超过14K文件和60 + gig数据).得到的拉链本身约10演出.现在我可以直接从机器上运行zip/tar命令,没有任何问题.但是,当我尝试通过SSHClient的exec_command运行相同的命令时,它运行了一段时间,但最终远程机器上的压缩过程进入休眠状态.而recv_exit_status只是无限期挂起.这是我正在使用的代码:

stdin, stdout, stderr = ssh.exec_command('cd myDirectory; tar -zcvf output.tgz *')
status = stdout.channel.recv_exit_status()
Run Code Online (Sandbox Code Playgroud)

我也试过使用Zip.

stdin, stdout, stderr = ssh.exec_command('cd myDirectory; find -name "*.gz" | zip output.zip -@')
status = stdout.channel.recv_exit_status()
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,如果我直接从远程计算机运行命令,它将完成压缩/ TARing.结果文件就像9演出.但是当我从paramiko尝试它时,它开始,超过一半(6's演出),然后过程进入睡眠状态!

我使用top监视远程机器上的进程,zip/tar将开始运行,但最终会在完成之前进入休眠状态.并且python脚本将无限期挂起.

任何想法为什么会这样?

python ssh process paramiko

8
推荐指数
1
解决办法
3446
查看次数

标签 统计

paramiko ×1

process ×1

python ×1

ssh ×1