亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python rsync服務(wù)器之間文件夾同步腳本

系統(tǒng) 1758 0

本文實例為大家分享了python rsync服務(wù)器之間文件夾同步的具體代碼,供大家參考,具體內(nèi)容如下

About ?rsync

配置兩臺服務(wù)器之間3ssh-key后,可以實現(xiàn)自動化無需手動輸入密碼,腳本如下:

            
import argparse
import datetime
from functools import partial
import multiprocessing as mp
import os
import paramiko as pmk
import time
 
 
def check_ssh(host, user, port, passwd, dest_path):
 ssh_client = pmk.SSHClient()
 ssh_client.load_system_host_keys()
 ssh_client.set_missing_host_key_policy(pmk.AutoAddPolicy())
 try:
  ssh_client.connect(host, username=user, port=port, timeout=10, password=passwd)
  ssh_client.exec_command('mkdir ' + os.path.join(dest_path, 'data'))
 except BaseException as e:
  print 'failed to connect to host: %r: %r' % (host, e)
  return False
 else:
  return True
 
 
def select_from_file(file_path):
 file_list = []
 if os.path.exists(file_path):
  path_dir = os.listdir(file_path)
  for all_dir in path_dir:
   file_list.append(os.path.join('%s' % all_dir))
 return file_list
 
 
def sync_file(file_name, remote_host, remote_user, remote_port, src_path, dest_path):
 sync_cmd = "rsync -azrvhP --progress -e 'ssh -p " + str(remote_port) + "' --skip-compress=gz/zip/ " + \
    file_name + " " + remote_user + "@" + remote_host + ":" + os.path.join(dest_path,'data')
 print sync_cmd
 os.chdir(src_path)
 os.system(sync_cmd)
 
 
if __name__ == '__main__':
 parser = argparse.ArgumentParser()
 parser.add_argument('-w', '--workers', dest='workers', type=int, default=12)
 parser.add_argument('-H', '--host', dest='host', type=str, default='192.168.254.156')
 parser.add_argument('-u', '--user', dest='user', type=str, default='shubao')
 parser.add_argument('-p', '--password', dest='password', type=str, default='123456')
 parser.add_argument('-P', '--port', dest='port', type=int, default=22)
 parser.add_argument('-r', '--remotepath', dest='remotepath', type=str, default='/home/shubao/')
 parser.add_argument('-s', '--srcpath', dest='srcpath', type=str, default='/home/Jesse/data')
 args = parser.parse_args()
 if not check_ssh(args.host, args.user, args.port, args.password, args.remotepath):
  print 'SSH connect faild!'
  exit(-1)
 pool = mp.Pool(processes=args.workers)
 try:
  while True:
   print "New check start at %s..." % str(datetime.datetime.now())
   file_list_ = select_from_file(args.srcpath)
   print "File_list: "
   print file_list_
   p_work = partial(sync_file, remote_host=args.host, remote_user=args.user, remote_port=args.port,
        src_path=args.srcpath, dest_path=args.remotepath)
   pool.map(p_work, file_list_)
   time.sleep(10)
 finally:
  pool.terminate()
  pool.join()
          

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 毛片免费观看久久欧美 | 国产免费久久 | 波多野结衣中文无毒不卡 | 国产精品一区三区 | 狠狠色噜噜狠狠狠狠网站视频 | 国产舐足视频在线观看 | 思思影院| 国产精品免费观看 | 亚洲色图插插插 | 草久久久| 欧美亚洲国产精品久久久久 | 日韩一区二区精品久久高清 | 国产亚洲精品看片在线观看 | 欧美一级性视频 | 久久国产免费观看 | 欧美亚洲国产成人高清在线 | 日本高清在线一区二区三区 | 久久在线资源 | 视频三区精品中文字幕 | 欧美亚洲国产激情一区二区 | 天天爱天天色 | 成人a视频 | 婷婷在线综合 | 久久久久嫩草影院精品 | 色天天综合 | 久久成人国产精品免费 | 国产精品久久永久免费 | 日本人一级毛片视频 | 青青免费视频精品一区二区 | 毛片在线高清免费观看 | 精品日韩在线观看 | 日日碰天天久久 | 97国内免费久久久久久久久久 | 精品国产呦系列在线看 | 国产综合久久久久久鬼色 | 视频一区久久 | 老子影院午夜伦手机不四虎 | 色综合综合网 | 一级毛片在线观看视频 | 在线第一福利视频观看 | 日本不卡一二三区 |