很多时候需要批量在一批主机上执行某个操作时,利用python 可以很好的完成这个工作。如果在现网主机上没有部署自动化工具时,同时你又不想使用paramiko这样相对重量级的模块,你可以通过pexpect模块通过一个简单的spawn执行并交互完成一些简单的命令操作。
pexpect模块的安装
代码如下 | 复制代码 |
# wget https://pypi.python.org/packages/source/p/pexpect/pexpect-3.3.tar.gz # tar zxvf pexpect-3.3.tar.gz # cd pexpect-3.3 # python setup.py install |
示例:
代码如下 | 复制代码 |
#!/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 ssh_cmd("192.168.0.102","361way","uptime") |
时间: 2024-12-01 02:27:21