您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在python中使用scp批量同步文件,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
該腳本用于將源主機列表路徑下的所有文件同步于目標主機的/tmp下面
#!/usr/bin/python # -*- coding:utf-8 -*- import pexpect import os import os.path src_path = ['/tmp/', '/opt/', '/root/'] dest_host = "192.168.143.201" dest_path = "/tmp" for path in src_path: file_list = os.listdir(path) for files in file_list: f = path + files cmd = 'scp -r %s %s:%s' % (f, dest_host, dest_path) scp = pexpect.spawn(cmd) scp.read()
下面的腳本基于第一個腳本做了補充,通過字典列出源主機的路徑及對應目標主機的路徑 key —> value 的映射關系,并且會去遠端進行目錄是否存在的檢測,以及文件同步過程的詳細輸出。
#!/usr/bin/python # -*- coding:utf-8 -*- import pexpect import os import os.path path_dict = {'/tmp/': '/tmp1/', '/opt/': '/opt1/', '/data/': '/data1/'} dest_host = "192.168.143.201" def src_to_dest(path_dict, dest_host): ''' 該腳本用于將主機 /tmp,/opt,/data 下的所有文件同步至遠程主機 /tmp1,/data1,/opt1 ''' for path in path_dict: file_list = os.listdir(path) cmd = 'ssh %s "[ -d %s || mkdir -p %s ]"' % (dest_host, path_dict[path], path_dict[path]) ssh = pexpect.spawn(cmd) ssh.read() #dest_path = "ssh %s '[ -d %s ] || mkdir -p %s'" % (dest_host, path_dict[path], path_dict[path]) #os.system(dest_path) for files in file_list: src_file = path + files print src_file + ' ---> ' + dest_host + ':' + path_dict[path] + files cmd = 'scp -r %s %s:%s' % (src_file, dest_host, path_dict[path]) scp = pexpect.spawn(cmd) scp.read() src_to_dest(path_dict, dest_host)
上述內容就是怎么在python中使用scp批量同步文件,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。