在网络上的另一台计算机上启动进程
我需要启动一系列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机器。
希望这有帮助!
大卫
在本地机器上安装ipython
和ipython kernel
在远程服务器上,并ipython
和ipython kernel
。然后,你可以在这里使用的设置连接到远程服务器:https://*.com/a/48332182/4752883
和运行,将使用subprocess
或os
内置库在远程机器上运行任何程序。此外,这是独立于操作系统,所以它会工作,无论您的客户端/服务器是linux
或Windows
或Mac
非常有帮助,感谢您的链接和示例代码! – 2014-11-21 09:49:11
欢迎您:) – David 2014-11-22 21:20:22
此帖中列出了许多选项:https://www.quora.com/How-can-I-control-a-computer-using-Python/answer/Jim-Dennis-1 ?SRID = p2Po – 2018-01-19 15:23:58