python真是个好东西,能够批量处理单纯的重复性工作。
本文推荐的python库:pexpect
在找到这个库之前,我曾用os.system来执行shell,缺乏交互,难以操作。
本文是个批量使用ssh管理服务器的例子,可以衍生出更多批量操作的工具。
————————————————————–
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
def ssh_cmd(ip, passwd, cmd):
ret = -1
ssh = pexpect.spawn('ssh 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.sendline(cmd)
r = ssh.read()
print r
ret = 0
except pexpect.EOF:
print "EOF"
ssh.close()
ret = -1
except pexpect.TIMEOUT:
print "TIMEOUT"
ssh.close()
ret = -2
return ret
———————————————————————
原文作者:
http://www.cnblogs.com/ma6174/archive/2012/05/25/2508378.html
转载随意~:陶醉 » python 交互shell pexpect
陶醉