首页 linux 应用正文

python中实现ssh自动登录并且执行命令

helight0 linux 应用 2010-12-21 51 4 mysql

由于要做一个对大量机器访问并且执行命令的一个操作,一个一个来那肯定不行了,那家伙一个人做要到猴年马月啊。所以想写一个工具来完成,考虑到开发速度、对数据库访问的便捷性等因素,我选择了python开发。查了一下python的ssh库,呃用起来挺简单的。 这是个修改主机密码的登录demo def ssh_cmd(ip, passwd, cmd, newpwd): ret = -1 ssh = pexpect.spawn('ssh -q -p36000 root@%s "%s"' % (ip, cmd)) try: i = ssh.expect(['password: ', 'continue connecting (yes/no)?'], timeout=5) if i == 0 : ssh.sendline(passwd) elif i == 1: ssh.sendline('yes\n') ssh.expect('password: ') ssh.sendline(passwd) ssh.expect('New Password:') ssh.sendline(newpwd) ssh.expect('Reenter New Password:') ssh.sendline(newpwd) r = ssh.read() ret = 0 except pexpect.EOF: print "EOF" ssh.close() ret = -1 except pexpect.TIMEOUT: print "TIMEOUT" ssh.close() ret = -2 return ret

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

精彩评论
  • 2011-08-29 09:34:33

    "查了一下python的ssh库,呃用起来挺简单的。" pexpect根本就不是Python的SSH库,只是expect的python实现而已

  • 2011-09-03 01:20:41

    是的,pexpect不是python的ssh库,应该是expect的python实现,不止可用在ssh上,ftp等其它交互上都可以使用的。