Выполнить удаленный скрипт Python через SSH - PullRequest
17 голосов
/ 15 ноября 2010

Я хочу выполнить скрипт Python на нескольких (15+) удаленных компьютерах с использованием SSH.После вызова скрипта / команды мне нужно отключить ssh-сессию и поддерживать процессы в фоновом режиме до тех пор, пока они этого требуют.

Я использовал Paramiko и PySSH в прошлом, поэтому у меня нет проблем с их повторным использованием.Единственное, что мне нужно знать, это как отключить ssh-сессию в python (поскольку обычно локальный скрипт будет ожидать завершения обработки каждой удаленной машиной, прежде чем двигаться дальше).

Ответы [ 4 ]

24 голосов
/ 15 ноября 2010

Это может сработать или что-то похожее:

ssh user@remote.host nohup python scriptname.py &

По сути, взгляните на команду nohup.

4 голосов
/ 15 ноября 2010

На компьютерах с Linux вы можете запустить скрипт с помощью 'at'.

echo "python scriptname.py" ¦ сейчас

1 голос
/ 03 января 2014

Если вы собираетесь выполнять повторяющиеся задачи на многих хостах, как, например, развертывание программного обеспечения и запуск сценариев установки, вам следует рассмотреть возможность использования чего-то вроде Fabric

Fabric is aБиблиотека Python (2.5 или выше) и инструмент командной строки для оптимизации использования SSH для развертывания приложений или задач системного администрирования.

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

Типичное использование включает создание модуля Python, содержащего одну или несколько функций, с последующим их выполнением черезпотрясающий инструмент командной строки.

0 голосов
/ 22 февраля 2018

Вы даже можете использовать tmux в этом сценарии.

Согласно документации tmux :

tmux является терминальным мультиплексором,Это позволяет легко переключаться между несколькими программами в одном терминале, отсоединять их (они продолжают работать в фоновом режиме) и подключать их к другому терминалу.И сделайте намного больше

В сеансе tmux вы можете запустить скрипт, выйти из терминала, войти снова и проверить, как он сохраняет сеанс до перезапуска сервера.

Как настроить tmux на облачном сервере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...