Как запустить несколько команд после входа в систему с SSH в Python? - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу выполнить некоторую последовательность команд ssh с помощью скрипта Python, как показано ниже, (и хочу отобразить вывод последней команды)

ssh hostname
sudo su userdb
cd /some/path/
./script_file -D option

Я пробовал с subprocess.Popen (each_command_from_list).

Но он застревает после подключения к имени хоста с помощью ssh.

import subprocess

commands = ["ssh hostname", "sudo su userdb", "cd /some/path/", "./script_file -D option"]

for cmd in commands:
    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
    proc_stdout = process.communicate()[0].strip()
    if cmd.startswith("./script_file"):
        print(proc_stdout)

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

1 Ответ

0 голосов
/ 07 ноября 2019

Рекомендуется использовать для этого какую-нибудь оболочку, например Paramiko .

Пример использования - Выполнять команды через ssh с Python

Почему отрицательные голоса?

...