Модуль SSH для Python - PullRequest
       21

Модуль SSH для Python

8 голосов
/ 04 июля 2011

Мне нужно выполнить работу (используя мой веб-сервер) на удаленной машине, что займет около 10 минут.

Я использовал модуль pxssh в python для того же, но он дает мне «ошибку тайм-аута» (не блокирует).

Теперь я использую paramiko , но он возвращается, как только дает инструкцию.

Я хочу, чтобы веб-сервер дождался завершения работы. Для этого есть какой-нибудь модуль Python SSH.

или

Можем ли мы добиться того же, изменив любые параметры конфигурации pxssh или paramiko?

1 Ответ

9 голосов
/ 04 июля 2011

Вы можете использовать метод recv_exit_status на канале для ожидания завершения команды:

recv_exit_status (self)

Вернуть выходстатус из процесса на сервере.Это в основном полезно для получения результатов exec_command.Если команда еще не завершила, этот метод будет ждать, пока она не завершится, или пока канал не будет закрыт.Если сервер не предоставляет состояние выхода, возвращается -1.

Например:

ssh = paramiko.SSHClient()
ssh.connect(remote, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("some command")
exit_status = ssh_stdout.channel.recv_exit_status()
...