今天我繼續為大家介紹如何利用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))
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