python scp 批量同步文件的實(shí)現(xiàn)方法
該腳本用于將源主機(jī)列表路徑下的所有文件同步于目標(biāo)主機(jī)的/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()
下面的腳本基于第一個(gè)腳本做了補(bǔ)充,通過字典列出源主機(jī)的路徑及對應(yīng)目標(biāo)主機(jī)的路徑 key —> value 的映射關(guān)系,并且會去遠(yuǎn)端進(jìn)行目錄是否存在的檢測,以及文件同步過程的詳細(xì)輸出。
#!/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):
''' 該腳本用于將主機(jī) /tmp,/opt,/data 下的所有文件同步至遠(yuǎn)程主機(jī) /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 批量同步文件的實(shí)現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python線程鎖(thread)學(xué)習(xí)示例
python thread提供了低級別的、原始的線程以及一個(gè)簡單的鎖,下面提供一個(gè)python線程線程鎖(thread)學(xué)習(xí)示例,大家參考使用2013-12-12
Python深入分析@property裝飾器的應(yīng)用
這篇文章主要介紹了Python @property裝飾器的用法,在Python中,可以通過@property裝飾器將一個(gè)方法轉(zhuǎn)換為屬性,從而實(shí)現(xiàn)用于計(jì)算的屬性,下面文章圍繞主題展開更多相關(guān)詳情,感興趣的小伙伴可以參考一下2022-07-07
Python中使用pymysql連接MySQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)查詢
在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)的重要性不言而喻,而數(shù)據(jù)庫作為數(shù)據(jù)存儲與管理的核心工具,在各類應(yīng)用系統(tǒng)中扮演著關(guān)鍵角色,Python 作為一種廣泛使用的編程語言,提供了多種與數(shù)據(jù)庫交互的方式,其中 pymysql 庫是連接 MySQL 數(shù)據(jù)庫的常用選擇之一,需要的朋友可以參考下2025-01-01
python異步編程之a(chǎn)syncio低階API的使用詳解
asyncio中低階API的種類很多,涉及到開發(fā)的5個(gè)方面,這篇文章主要為大家詳細(xì)介紹了這些低階API的具體使用,感興趣的小伙伴可以學(xué)習(xí)一下2024-01-01
Python?標(biāo)準(zhǔn)庫?fileinput與文件迭代器
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫fileinput與文件迭代器,fileinput模塊可以對一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作,更多詳細(xì)內(nèi)容需要的朋友可以參考一下2022-09-09
Python實(shí)現(xiàn)的插入排序算法原理與用法實(shí)例分析
這篇文章主要介紹了Python實(shí)現(xiàn)的插入排序算法原理與用法,簡單描述了插入排序的原理,并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)插入排序的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
詳解Pytorch如何利用yaml定義卷積網(wǎng)絡(luò)
大多數(shù)卷積神經(jīng)網(wǎng)絡(luò)都是直接通過寫一個(gè)Model類來定義的,這樣寫的代碼其實(shí)是比較好懂,也很方便。但是本文將介紹另一個(gè)方法:利用yaml定義卷積網(wǎng)絡(luò),感興趣的可以了解一下2022-10-10

