2015-04-16 3 views
0

Привет использовать pxssh и сделать следующее:Python/создать каталог с SSH (используя pxssh)

s = pxssh.pxssh() 
    if not s.login (ip, user, password): 
     print("SSH session failed on login.") 
     print(str(s)) 
    else: 
     print("SSH session login successful") 
     if not os.path.exists("/root/a"): 
      os.makedirs("/root/a") 

Проблема заключается в том, что /root/a ищется в локальной машине, а не в машине я подключиться.

Как создать каталог в машине, к которой я подключаюсь?

ответ

0

В соответствии с docs вам необходимо отправить строки команд через объект и не выполнять локальные команды, как вы делаете.

According to this link, запустите команды так, как вы находитесь в терминале машины, к которой вы подключены. Что-то вроде s.sendline('mkdir /root/a').

Другим решением будет создание этого сценария .py, отправка на компьютер и запуск сценария на компьютере с использованием кода, который вы написали. Вы можете подключиться через SSH и запустить команду python script.py.

+0

'mkdir -p/root/a' может быть более целесообразным, поскольку он не сообщит об ошибке, если путь уже существует ... Конечно, он все равно может вызвать ошибки по другим причинам, например'/root' not быть доступным для записи и т. д. ... – twalberg

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