我是一个新的paramiko用户,并且很难在paramiko的远程服务器上运行命令.我想导出一个路径,并在后台运行一个名为tophat的程序.我可以使用paramiko.sshclient()登录,但我的exec_command代码没有结果.
stdin,stdout,sterr = ssh.exec_command('export PATH=$PATH:/proj/genome/programs /tophat-1.3.0/bin:/proj/genome/programs/cufflinks-1.0.3/bin:/proj/genome/programs/ bowtie-0.12.7:/proj/genome/programs/samtools-0.1.16') stdin,sterr = ssh.exec_command('nohup tophat -o /output/path/directory -I 10000 -p 8 --microexon-search -r 50 /proj/genome/programs/bowtie-0.12.7/indexes /ce9 /input/path/1 /input/path/2 &')
没有nohup.out文件,python只是转到下一行,没有错误消息.我也试过没有nohup,结果是一样的.我试图遵循this paramiko tutorial.
我是否正确使用exec_command?
解决方法
我也遇到了同样的问题,在查看了
this article和
this answer之后,我看到解决方案是调用Channel的recv_exit_status()方法.这是我的代码:
import paramiko import time cli = paramiko.client.SSHClient() cli.set_missing_host_key_policy(paramiko.client.AutoAddPolicy()) cli.connect(hostname="10.66.171.100",username="mapping") stdin_,stdout_,stderr_ = cli.exec_command("ls -l ~") # time.sleep(2) # PrevIoUsly,I had to sleep for some time. stdout_.channel.recv_exit_status() lines = stdout_.readlines() for line in lines: print line cli.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。