今天我继续为大家介绍如何利用paramiko模块给批量主机上传文件,其实之前都介绍过了,无非就是把一些零碎的东西拼在一起,呵呵,就是利用python读取配置文件里面的批量主机的IP地址,然后分别给他们上传文件,下面不废话了,直接上代码了:
- [root@centos6 python]# vi paramiko-sftp-mulit-upload.py
- #!/usr/bin/env python
- import paramiko
- import os
- import datetime
- from ConfigParser import ConfigParser
- ConfigFile='config.ini'
- config=ConfigParser()
- config.read(ConfigFile)
- hostname1=''.join(config.get('IP','ipaddress'))
- address=hostname1.split(';')
- print address
- username='root'
- password='itpschina123'
- port=22
- local_dir='/tmp/'
- remote_dir='/tmp/test/'
- if __name__=="__main__":
- # try:
- for ip in address:
- t=paramiko.Transport((ip,port))
- t.connect(username=username,password=password)
- sftp=paramiko.SFTPClient.from_transport(t)
- # files=sftp.listdir(dir_path)
- files=os.listdir(local_dir)
- print files
- for f in files:
- print '####################################################'
- print 'Begin to upload file to %s ' % ip
- print 'Uploading ',os.path.join(local_dir,f)
- print datetime.datetime.now()
- sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))
- print datetime.datetime.now()
- print '####################################################'
- t.close()
下面是config.ini的配置文件内容:
- [IP]
- #ipaddress = 192.168.0.102;192.168.0.103
- ipaddress = 74.63.229.*;69.50.220.*
呵呵,感兴趣的话,去试验下吧,代码都贴出来了,如果前面几期运行都很很顺利的话,这次也没有问题的,毕竟我都是在我的虚拟机上验证过的,如果有问题,请留言。。。
本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/707081如需转载请自行联系原作者
world77