python多主机远程操作

#!/usr/bin/python
#-*-coding:utf-8-*-
‘‘‘
create on 2014.12.13
@author: feifei
‘‘‘

import os
import sys
import paramiko

ips = []
def read_ip(ipfile):
    try:
        if os.path.isfile(ipfile):
            allip = open(ipfile, ‘r‘)
            for ip in allip:
	        ips.append(ip.strip())
            allip.close()
	else:
	    sys.exit()
    except:
	print ‘open ip.txt is failure.‘
	sys.exit()

def remote_action():
    username=‘root‘
    pkey=‘/root/.ssh/id_rsa‘
    port=22
    fail_host = [] 
    for hostname in ips:
        try:
	    paramiko.util.log_to_file(‘paramiko.log‘)
	    key=paramiko.RSAKey.from_private_key_file(pkey)
	    s=paramiko.SSHClient()
	    s.load_system_host_keys()
	    s.connect(hostname,port,username,pkey=key)
	    print ‘%s:‘ % hostname
	    stdin,stdout,stderr=s.exec_command(‘hostname;free m‘)
	    print stdout.read()
	    s.close()
	except:
	    fail_host.append(hostname)
    if not fail_host:
	print ‘\033[1;31;40mAll host is succeed.\033[0m‘
    else:
        print "\033[1;31;40mPlease check fail host:\033[0m",
        for index, value in enumerate(fail_host):
    	    print "\033[1;31;40m%s\033[0m" % value,

if __name__ == "__main__":
    read_ip(‘ip.txt‘)
    remote_action()
ps: 使用python实现对多台目标主机的远程操作。
时间: 2024-10-06 00:05:07

python多主机远程操作的相关文章

<zz>PYTHON FABRIC实现远程操作和部署

from http://www.cnblogs.com/liujianzuo888/articles/6230691.html fabric title是开发,但是同时要干开发测试还有运维的活 (o(╯□╰)o) 近期接手越来越多的东西,发布和运维的工作相当机械,加上频率还蛮高,导致时间浪费还是优点多. 修复bug什么的,测试,提交版本库(2分钟),ssh到测试环境pull部署(2分钟),rsync到线上机器A,B,C,D,E(1分钟),分别ssh到ABCDE五台机器,逐一重启(8-10分钟)

python fabric实现远程操作和部署

安装fabric $ pip install fabric 官网帮助文档:http://docs.fabfile.org/en/1.6/tutorial.html

Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作

git使用笔记(四)远程操作

By francis_hao    Nov 19,2016 以一张图说明远程操作,图片来自参考[2] git clone 从远端主机克隆一个版本库,若省略directory则生成一个和远端同名的版本库. $ git clone <repository> [directory] git clone支持的一些远端主机协议 $ git clone http[s]://example.com/path/to/repo.git/$ git clone ssh://example.com/path/to/

SSH原理与运用(二):远程操作与端口转发

本问转载自  http://www.ruanyifeng.com/blog/2011/12/ssh_port_forwarding.html SSH原理与运用(二):远程操作与端口转发 作者: 阮一峰 日期: 2011年12月23日 接着前一次的文章,继续介绍SSH的用法. ======================================= 作者:阮一峰 (Image credit: Tony Narlock) 七.远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行

python实现主机批量管理

在日常的运维工作中批量对主机的是很常见的,市面上也有许多主机批量管理的软件,但有时候这些软件并不能完全的满足我们的需求.python中刚好提供了关于主机批量管理的模块,今天就让我们来看看如何利用python实现主机批量管理 python提供主机批量管理的模块主要有三个paramiko.fabric与pexpect,今天我们主要说的是paramiko模块,paramiko模块是第三方模块 安装:pip install paramiko或者yum install python-paramiko如果都

【Git】Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作

Git远程操作(附重要原理图)

原文出处: 阮一峰 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git

Git远程操作

Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作的第一步,通常是从远程主机克隆一个版本库,这时就要用到git clone