交互式Python脚本在远程服务器上运行命令

时间:2015-01-13 00:56:01

标签: python linux pexpect

我需要编写一个脚本来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")

直到最后一行的所有内容都没问题,但是从那时起我的脚本就会退出。

1 个答案:

答案 0 :(得分:0)

如果你想在远程服务器上做一些相对快速的事情fabric可能是用于python的最好的东西。 Fabric是在paramiko之上编写的,并且有一些API级抽象,比paramiko更容易使用。