python与pexpect实现ssh操作

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-21 17:19   37   0

下载并安装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


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP