Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1380546
  • 博文数量: 77
  • 博客积分: 2104
  • 博客等级: 大尉
  • 技术积分: 2322
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 13:21
个人简介

关注于系统高可用、网站架构

文章分类

全部博文(77)

文章存档

2018年(1)

2017年(1)

2015年(4)

2014年(8)

2013年(4)

2012年(12)

2011年(17)

2010年(30)

分类: Python/Ruby

2011-06-28 10:34:50

1、 安装pythonPexpect模块
    yum install pexpect
 
2、 代码
这里主要是用pexpect执行ssh,查看远程uptime和df -h看硬盘状况。

#ssh_cmd.py
#coding:utf-8
import pexpect
def ssh_cmd(ip, user, passwd, cmd):
    ssh = pexpect.spawn('ssh "%s"' % (user, ip, cmd))
    r = ''
    try:
        i = ssh.expect(['password: ', 'continue connecting (yes/no)?'])
        if i == 0 :
            ssh.sendline(passwd)
        elif i == 1:
            ssh.sendline('yes')
    except pexpect.EOF:
        ssh.close()
    else:
        r = ssh.read()
        ssh.expect(pexpect.EOF)
        ssh.close()
    return r
hosts = '''
192.168.10.20:zhujian:abc123:df -h,uptime
192.168.10.31:zhujian:abc123:df -h,uptime
192.168.10.204:root:xx123:restartjboss
'''
for host in hosts.split("\n"):
    if host:
        ip, user, passwd, cmds = host.split(":")
        for cmd in cmds.split(","):
            print "-- %s run:%s --" % (ip, cmd)
            print ssh_cmd(ip, user, passwd, cmd)
 
hosts数组格式是:主机IP:用户名:密码:命令 (多个命令用逗号, 隔开)
阅读(5471) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~