在网络上的另一台计算机上启动进程

问题描述:

我需要启动一系列python脚本和/或其他Windows可执行文件。其中一些需要Windows系统,其他则需要Linux机器。在网络上的另一台计算机上启动进程

当前有指定的机器来运行依赖于操作系统的程序。所以我知道我想开始哪个程序。

是否有一个开始从一个Python脚本Python脚本(或一个Windows可执行文件)的方式,在本地网络上,另一台计算机上(例如运行192.168.0.101:/dir/python_script_123.py

脚本,然后应该运行各种程序然后可以像这样在伪代码 ..

linuxip = 192.168.0.101 
linuxparam = "required parameter" 

winip = 192.168.0.201 
winparam = "required parameter" 

#option 1 (run all), 2(run linux only), 3(run windows only), 4(run local only) 
option = 1 

if option == 1: 
    magic_things.run("linuxip:/dir/linux_script.py" + linuxparam) 
    magic_things.run("winip:C:\\dir\\windows_prog.exe" + winparam) 
    subprocess.call(["/dir/local_script.py","parameter"]) 
    subprocess.call(["/dir/another_local_script.py","parameter"]) 
elif option ==2: 
    [...] 

您需要从客户端连接到您的服务器的机器。在你可以使用SSH的Linux机器的情况。 看到http://en.wikipedia.org/wiki/Secure_Shell

假设你在运行的linux服务器上有一个ssh server,你可以使用软件包paramiko(http://docs.paramiko.org/en/1.15/api/client.html)连接到机器并在那里运行你的脚本。

这可能是这个样子:

from paramiko.client import SSHClient 

client = SSHClient() 
client.load_system_host_keys() 
client.connect('linuxip', username='your_user', password='very_secret') 
stdin, stdout, stderr = client.exec_command('python /home/your_user/your/path/to/scripty.py') 

但是请注意,这不是很安全的存储在脚本的密码,它可能更好地使用公钥/私钥认证(参见维基文章)。

paramiko包还提供了一个SSH服务器的选项,所以这可能是您的Windows机器的解决方案,但我不是很确定,因为我不再运行任何Windows机器。

希望这有帮助!

大卫

+0

非常有帮助,感谢您的链接和示例代码! – 2014-11-21 09:49:11

+0

欢迎您:) – David 2014-11-22 21:20:22

+0

此帖中列出了许多选项:https://www.quora.com/How-can-I-control-a-computer-using-Python/answer/Jim-Dennis-1 ?SRID = p2Po – 2018-01-19 15:23:58

在本地机器上安装ipythonipython kernel在远程服务器上,并ipythonipython kernel。然后,你可以在这里使用的设置连接到远程服务器:https://*.com/a/48332182/4752883

和运行,将使用subprocessos内置库在远程机器上运行任何程序。此外,这是独立于操作系统,所以它会工作,无论您的客户端/服务器是linuxWindowsMac