Интерактивный скрипт Python для запуска команд на удаленном сервере

Мне нужно написать скрипт для ssh на удаленный сервер и запустить там некоторые команды. Может ли кто-нибудь предложить мне какие-либо модули, которые помогут мне сделать это?

Я пытался использовать pexpect. Я смог войти в систему, ввести пароль, но не смог выполнить ни одной команды unix. Предназначен ли pexpect для использования этого идентификатора сортировки?

command = 'ssh '+'uname@'+ vm

    ssh_newkey = 'Are you sure you want to continue connecting'
    # my ssh command line
    p=pexpect.spawn(command)

    i=p.expect([ssh_newkey,'password:',pexpect.EOF])
    if i==0:
        print "Say yes to prompt"
        p.sendline('yes')
        i=p.expect([ssh_newkey,'password:',pexpect.EOF])
    if i==1:
        print "I give password\n",
        p.sendline("abcd")
        p.sendline("pwd")
        p.expect('xyza')
        #p.sendline("//some unix command")

Все до последней строки в порядке, но дальше мой скрипт просто завершает работу.


person user892871    schedule 13.01.2015    source источник
comment
paramiko.SSHClient это все   -  person Joran Beasley    schedule 13.01.2015


Ответы (1)


Если вы хотите сделать что-то относительно быстро на удаленном сервере, fabric, вероятно, лучше всего использовать для Python. Fabric написан поверх paramiko и имеет некоторую абстракцию уровня API, что делает его более простым в использовании, чем paramiko.

person Greg    schedule 13.01.2015