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