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合并文本文件示例
Feb 07 Python
优化Python代码使其加快作用域内的查找
Mar 30 Python
python开发简易版在线音乐播放器
Mar 03 Python
Python 高级专用类方法的实例详解
Sep 11 Python
python中文分词教程之前向最大正向匹配算法详解
Nov 02 Python
python清理子进程机制剖析
Nov 23 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
python的json中方法及jsonpath模块用法分析
Dec 06 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
Dec 25 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 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
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
谈谈JS中的!!
2017/12/07 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
Python使用asyncio包处理并发详解
2017/09/09 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
python实现在一个画布上画多个子图
2020/01/19 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
俄罗斯鲜花递送:AMF
2020/04/24 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
员工趣味活动方案
2014/08/27 职场文书
婚庆公司计划书
2014/09/15 职场文书
世界遗产导游词
2015/02/13 职场文书
2015年市场部工作总结
2015/04/30 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技