python ssh批量操作

来源:互联网 发布:unity js v8 编辑:程序博客网 时间:2024/05/17 23:47

笔者身为linux系统运维人员,很多时候需要对多台服务器进行相同的操作。

原来使用的办法:

1. 写一个vbs脚本

2. 用SecureCRT登陆到管理机

3. 在SecureCRT中Script菜单栏里面run所写的脚本,把要些的命令都添加进去vbs脚本里面,大家可以到网上搜相关的知识点

4. 运行for i in "所有要操作的机器ip";do ssh $i;done


这个其实也是一个很高效的办法,以前一直在用这个方法管理,不过自从学习了python以后,发现不用SecureCRT这个工具就可以集中管理所以的机器了,那何乐而不为呢。


下面就来介绍一下python 模拟ssh集中管理服务器的方法。

先来介绍一下所需要的模块:

paramiko

我是在windows 64位系统下安装的ActivePython 2.7,先用easy_install paramiko安装其模块

出现如下错误:

说明安装paramiko需要安装依赖的pycrypto,但是pycrypto安装又报出Unable to find vcvarsall.bat的错误

好吧,到网上查了查,可以直接安装windows编译好的二进制的pycrypto来解决这个问题。

软件下载地址,请对应自己的环境下载。

http://www.voidspace.org.uk/python/modules.shtml#pycrypto

安装好后,ok,在运行一下easy_install paramiko,如图:

说明paramiko已经顺利的安装好了。


下面就是我写的代码,大家可以结合自己的实际环境来修改代码。


import paramikohostname='192.168.0.102'username='root'password='abc'#port=22if __name__=='__main__':        cmd = ['ifconfig','free','df -h','mkdir /tmp/jason']        paramiko.util.log_to_file('paramiko.log')        s=paramiko.SSHClient()        #s.load_system_host_keys()        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())        s.connect(hostname = hostname,username=username, password=password)        for i in cmd:          stdin,stdout,stderr=s.exec_command(i)          print stdout.read()        s.close()



原创粉丝点击