Интерактивен Python скрипт за изпълнение на команди на отдалечен сървър

Трябва да напиша скрипт за ssh към отдалечен сървър и да изпълня някои команди там. Може ли някой да ми предложи някакви модули, които ще ми помогнат да направя това?

Опитах се да използвам pexpect. Успях да вляза в машината, да дам парола, но не можах да изпълня никакви unix команди. Pexpect предназначен ли е за това сортиране на id употреба?

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