Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 27, 2010 16:55:49

evilempirer
От:
Зарегистрирован: 2010-06-07
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с работой в shell

Есть необходимость раскидать профиль по множеству серверов, думаю сделать это так
pipe = os.popen('scp ~/.bashrc username@webxx:~/'), но соответственно при подключении впервые к ферме или после рехеша ключей выводится предложение получить ключ от сервера, а потом соответственно надо ввести пароль, пробовал модуль paramiko но AutoAddPolicy() там не срабатывает и как реализовать ввод пароля ? Или вообще отказаться от такой идеи и попробовать распространить через ftp ?



Офлайн

#2 Авг. 28, 2010 20:34:36

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с работой в shell

Советую использовать модуль subprocess, это замена устаревшему os.popen(), и с его помощью можно легко отправить процессу команды, сымитировав ввод пользователя.



Офлайн

#3 Авг. 28, 2010 21:38:09

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Помогите с работой в shell

pexpect для этого существует.
Читать тут: http://linux.byexamples.com/archives/346/python-how-to-access-ssh-with-pexpect/



Офлайн

#4 Авг. 30, 2010 11:33:59

evilempirer
От:
Зарегистрирован: 2010-06-07
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с работой в shell

Парамико заработал, с этим все ок, но когда пытаюсь выполнять команды, будь-то субпроцесс или ос, питон почему то пытается вызвать sh интерпретатор, соответственно везде стоит баш и вылетает с ошибкой /bin/sh: fetch command not found



Офлайн

#5 Авг. 30, 2010 11:44:08

evilempirer
От:
Зарегистрирован: 2010-06-07
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с работой в shell

спасибо всем за помощь, решилось функцией встроенной в парамико .exec_command()



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version