【问题标题】:Start a process on another computer on the network在网络上的另一台计算机上启动进程
【发布时间】:2015-01-19 07:23:21
【问题描述】:

我需要启动一系列 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:
    [...]

【问题讨论】:

    标签: python linux windows automation network-programming


    【解决方案1】:

    您需要从客户端连接到您的服务器计算机。如果是 linux 机器,您可以使用 SSH。 见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')
    

    但是请注意,将密码存储在脚本中并不是很安全,最好使用公钥/私钥身份验证(请参阅 wiki 文章)。

    paramiko 软件包还提供 ssh 服务器选项,因此这可能是您的 windows 机器的解决方案,但我不太确定,因为我不再运行任何 windows 机器。

    希望这对您有所帮助!

    大卫

    【讨论】:

    【解决方案2】:

    在远程服务器上安装ipythonipython kernel,在本地计算机上安装ipythonipython kernel。然后您可以使用此处的设置连接到远程服务器:https://stackoverflow.com/a/48332182/4752883

    并使用subprocessos 内置库运行可以在远程计算机上运行的任何程序。此外,这与操作系统无关,因此无论您的客户端/服务器是 linux 还是 WindowsMac,它都可以工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2017-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      相关资源
      最近更新 更多