将Subprocess.Popen stdout重定向到远程服务器上的文件

时间:2017-08-16 13:08:54

标签: python popen remote-server

我正在尝试使用subprocess.Popen在Ubuntu VM上通过Python运行shell命令。但是,我需要输出此命令才能转到另一个VM上的文件。

我已经使用paramiko.SSHClient模块和client.open_sftp打开了该文件。

但是当我把它传递给Popen的stdout时,Python抱怨说

"属性错误:' SFTPFile'对象没有属性' fileno'

如何让Popen将其stdout发送到远程VM上的文件?

我的代码看起来像这样

MyClient = paramiko.SSHClient()
MyClient.set_missing_host_key_policy(paramiko.AutoAddPolicy())
MyClient.load_system_host_keys()
MyClient.connect(args.serverip, username="xxx", password='yyy')
MySftp = MyClient.open_sftp()

RemoteLogFile = MySftp.file('/home/xxx/regression.log', "a")

...

p1 = subprocess.Popen([ShellCommand], cwd='/tmp/', shell=True, stdout=RemoteLogFile)

0 个答案:

没有答案