34233 发表于 2016-2-1 10:41:14

python与pexpect实现ssh操作

下载并安装pexpect与ptyprocess模块并结合python2.7实现如下操作
tar -zxvf pexpect-4.0.1.tar.gz
cd pexpect-4.0.1
python setup.py install
tar -zxvf ptyprocess-0.5.tar.gz

cd /ptyprocess-0.5
python setup.py install

Py脚本
#!/usr/bin/env python

# -*- coding: utf-8 -*-
import pexpect
#from getpass import getpass
#passwd = getpass()
def ssh_cmd(user,ip, cmd,passwd):
      ssh = pexpect.spawn('ssh %s@%s "%s"' % (user,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')
                        ssh.expect('password: ')
                        ssh.sendline(passwd)
      except pexpect.EOF:
                print "EOF"
      except pexpect.TIMEOUT:
                print "TIMEOUT"
      else:
                r = ssh.read()
                print r
      ssh.close()

if __name__ == '__main__':
      file=open("/mess/filelist",'r')
      a = file.read()
      file.close()
      for host in a.split("\n"):
                if host:
                        user,ip,cmd,passwd = host.split("::")
                        print "-- %s run:%s --" % (ip, cmd)
                        ssh_cmd(user,ip,cmd,passwd)
-------------------------------------------------------------------------------------------
/mess/filelist
root::192.168.100.100::ls -l::password
root::192.168.100.100::ps -ef|grep ssh|awk '{print $8}'::password

页: [1]
查看完整版本: python与pexpect实现ssh操作