2014-07-15 103 views
0

Python subprocess.popen在本地機器上很容易,但可以通過網絡調用它嗎?Python subprocess.popen通過網絡

例子,說我有3臺PC,一個被稱爲工作站,PC,其他人都被稱爲節點1-PC和節點2-PC ...

是否可以呼籲,比方說一個過程,node1- PC,從工作站PC,最好不必在node1-pc上運行特殊的服務器軟件?

無論如何,非常感謝您的回覆!

吉爾斯

編輯 忘了提,我使用Python 3

+2

不,你需要創建一個消息傳遞系統之間的3個網絡機器...像芹菜可能... ... –

回答

1

我會建議使用兩種:

例與面料:

from fabric.api import env, run 

env.hosts = ['host1', 'host2'] 

def mytask(): 
    run('ls /var/www') 
+0

感謝您的答覆,但我忘了我正在使用Python 3 mentiuon,和織物不與它一起工作! – Gilles

0

面料可能是要走的路,然而,沒有什麼可以阻止你通過ssh在* nix的環境中執行遠程命令。

import subprocess 
p = subprocess.Popen(['ssh', 'node1-pc', 'ls', '-ltr', '/etc'], stdout=subprocess.PIPE) 
out, err = p.communicate() 

out將包含遠程進程的stdout。

+0

忘了提及我使用Python 3,所以沒有織物給我! 我試過Popen調用,但得到一個錯誤,無論我嘗試什麼「FileNotFoundError:[WinError 2]系統找不到指定的文件」 – Gilles

+0

Windows是不同的。你需要使用合適的SSH客戶端和服務器。 – mhawke