У меня есть файл python в папке \ tmp \ этот файл печатает что-то и возвращается с кодом возврата 22. Я могу отлично выполнить этот скрипт с помощью замазка, но не в состоянии сделать это с помощью модуля paramiko.как выполнить скрипт python или bash через ssh-соединение и получить код возврата
это мой код
import paramiko
def main():
remote_ip = '172.xxx.xxx.xxx'
remote_username = 'root'
remote_password = 'xxxxxxx'
remote_path = '/tmp/ab.py'
sub_type = 'py'
commands = ['echo $?']
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(remote_ip, username=remote_username,password=remote_password)
i,o,e = ssh_client.exec_command('/usr/bin/python /tmp/ab.py')
print o.read(), e.read()
i,o,e = ssh_client.exec_command('echo $?')
print o.read(), e.read()
main()
исполнения это мой питон скрипт для выполнения на удаленном компьютере
#!/usr/bin/python
import sys
print "hello world"
sys.exit(20)
Я не в состоянии понять, что на самом деле не так в моей логике. Также, когда я делаю cd \ tmp, а затем ls, я все равно буду в корневой папке.
за идею. Я выполнил это, используя конвейер и перенаправляя вывод скрипта python в файл, а затем прочитал скрипт следующей команды. – Hemant