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写冒泡排序代码
Apr 12 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
python3实现windows下同名进程监控
Jun 21 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
python列表使用实现名字管理系统
Jan 30 Python
Python元组常见操作示例
Feb 19 Python
基于python生成器封装的协程类
Mar 20 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Django 解决阿里云部署同步数据库报错的问题
May 14 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
django如何自定义manage.py管理命令
Apr 27 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
第一节--面向对象编程
2006/11/16 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
php中cookie实现二级域名可访问操作的方法
2014/11/11 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
javascript 伪数组实现方法
2010/10/11 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
Angular resolve基础用法详解
2018/10/03 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
大韩航空官方网站:Korean Air
2017/10/25 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
运动会通讯稿100字
2014/01/31 职场文书
入党介绍人评语
2014/05/06 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
党的群众路线教育实践活动教师自我剖析材料
2014/10/09 职场文书
销售辞职信范文
2015/03/02 职场文书
食品卫生管理制度
2015/08/06 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL