我有一个功能,建立一个ssh sommand行,并将其传递给popen,这样我就可以在远程框上运行命令(我知道我可以使用Fabirc或paramiko,但出于兴趣,我想这样做)。你知道吗
所以函数调用是Poepn周围的包装器(部分)
def runcmd(cmd, host=None, stdout=None, stderr=None, both=None, shell=None, user=None)
我调用它进行测试 runcmd('cd~/app scripts;grep“below and comment”*',user=“testuser”)
它生成的命令显示为
ssh -F /home/testuser/.ssh/config testuser@localhost 'cd ~/app-scripts; grep "below and commment" *'
这在“远程”主机上运行良好,标准输出正确显示结果-- 但是,stderr还包含来自远程主机的所有登录消息。你知道吗
对Popen的内部函数调用是
p = Popen(sshcmd,stdout=PIPE,stderr=PIPE,shell=True)
stdout_data,stderr_data = p.communicate()
我错过了什么?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐