今天我继续为大家介绍如何利用paramiko模块给批量主机上传文件,其实之前都介绍过了,无非就是把一些零碎的东西拼在一起,呵呵,就是利用python读取配置文件里面的批量主机的IP地址,然后分别给他们上传文件,下面不废话了,直接上代码了:

 

   
   
   
   
  1. [root@centos6 python]# vi paramiko-sftp-mulit-upload.py 
  2.  
  3. #!/usr/bin/env python 
  4. import paramiko 
  5. import os 
  6. import datetime 
  7. from ConfigParser import ConfigParser 
  8. ConfigFile='config.ini' 
  9. config=ConfigParser() 
  10. config.read(ConfigFile) 
  11. hostname1=''.join(config.get('IP','ipaddress')) 
  12. address=hostname1.split(';'
  13. print address 
  14. username='root' 
  15. password='itpschina123' 
  16. port=22 
  17. local_dir='/tmp/' 
  18. remote_dir='/tmp/test/' 
  19. if __name__=="__main__"
  20.  #    try: 
  21.         for ip in address: 
  22.                  t=paramiko.Transport((ip,port)) 
  23.                  t.connect(username=username,password=password) 
  24.                  sftp=paramiko.SFTPClient.from_transport(t) 
  25. #                files=sftp.listdir(dir_path) 
  26.                  files=os.listdir(local_dir) 
  27.                  print files 
  28.                  for f in files: 
  29.                         print '####################################################' 
  30.                         print 'Begin to upload file  to %s ' % ip 
  31.                         print 'Uploading ',os.path.join(local_dir,f) 
  32.  
  33.                         print datetime.datetime.now() 
  34.                         sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f)) 
  35.                         print datetime.datetime.now() 
  36.                         print '####################################################' 
  37.                  t.close() 

下面是config.ini的配置文件内容:

   
   
   
   
  1. [IP] 
  2. #ipaddress = 192.168.0.102;192.168.0.103 
  3. ipaddress = 74.63.229.*;69.50.220.

   呵呵,感兴趣的话,去试验下吧,代码都贴出来了,如果前面几期运行都很很顺利的话,这次也没有问题的,毕竟我都是在我的虚拟机上验证过的,如果有问题,请留言。。。