python与pexpect实现ssh操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 %[email protected]%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
以上是关于python与pexpect实现ssh操作的主要内容,如果未能解决你的问题,请参考以下文章