2014-11-21 3 views
0

Я должен начать серию сценариев python и/или других исполняемых файлов Windows. Для некоторых из них требуется система Windows, другие - Linux.Запустите процесс на другом компьютере в сети

В настоящее время существуют определенные машины для запуска программ, зависящих от ОС. Поэтому я знаю, где я хочу начать эту программу.

Есть ли способ, чтобы начать питон скрипт (или окна исполняемый файл) из питона сценария, в локальной сети, на другом компьютере (например, запустить 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: 
    [...] 

ответ

2

Вам необходимо подключиться к серверной машине от вашего клиента. в случае 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') 

Однако обратите внимание, что это не очень безопасно хранить пароли в скриптах, и это, вероятно, лучше использовать аутентификацию открытый/закрытый ключ (см вики статью).

Пакет paramiko также предлагает возможность для ssh-сервера, поэтому это может быть решением для вашей машины Windows, но я не очень уверен, поскольку я больше не запускаю никаких оконных машин.

Надеюсь, это было полезно!

Дэвид

+0

очень полезно, спасибо за ссылку и образец кода! –

+0

Добро пожаловать :) – David

+0

В этом сообщении указано количество вариантов: https://www.quora.com/How-can-I-control-a-computer-using-Python/answer/Jim-Dennis-1 ? SRID = p2Po –

0

установить ipython и ipython kernel на удаленном сервере, и ipython и ipython kernel на локальной машине. После этого вы можете подключиться к удаленному серверу, используя настройки: https://stackoverflow.com/a/48332182/4752883

и запустить любую программу, которая будет работать на удаленном компьютере с помощью subprocess или os встроенных библиотек. Кроме того, это независимая ОС, поэтому она будет работать независимо от того, является ли ваш клиент/сервер linux или Windows или Mac

Смежные вопросы