python scp 批量同步文件的实现方法


Posted in Python onJanuary 03, 2019

该脚本用于将源主机列表路径下的所有文件同步于目标主机的/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 批量同步文件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 调用VC++的动态链接库(DLL)
Sep 06 Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 Python
Python使用urllib模块的urlopen超时问题解决方法
Nov 08 Python
python选择排序算法实例总结
Jul 01 Python
基于Python List的赋值方法
Jun 23 Python
python flask框架实现传数据到js的方法分析
Jun 11 Python
Python zip函数打包元素实例解析
Dec 11 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
Django 返回json数据的实现示例
Mar 05 Python
Django models文件模型变更错误解决
May 11 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 #Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 #Python
Python中shapefile转换geojson的示例
Jan 03 #Python
Python关于excel和shp的使用在matplotlib
Jan 03 #Python
Python使用folium excel绘制point
Jan 03 #Python
Python获取航线信息并且制作成图的讲解
Jan 03 #Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 #Python
You might like
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python 转义字符详细介绍
2017/03/21 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
Delphi软件工程师试题
2013/01/29 面试题
岗位竞聘演讲稿
2014/01/10 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书