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脚本生成随机IP的简单方法
Jul 30 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
Python探索之爬取电商售卖信息代码示例
Oct 27 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
tensorflow 模型权重导出实例
Jan 24 Python
python 用struct模块解决黏包问题
Nov 07 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
pyqt5实现井字棋的示例代码
Dec 07 Python
PyTorch梯度裁剪避免训练loss nan的操作
May 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
PHP的分页功能
2007/03/21 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
动态改变textbox的宽高的js
2006/10/26 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JavaScript 基本概念
2015/01/20 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
js贪心算法 钱币找零问题代码实例
2019/09/11 Javascript
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
python生成二维码的实例详解
2017/10/29 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
在django view中给form传入参数的例子
2019/07/19 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
青年创业培训欢迎词
2014/01/08 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
公司董事长岗位职责
2014/06/08 职场文书
校园广播稿100字
2014/10/06 职场文书
2014年教研员工作总结
2014/12/23 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
教师节晚会主持词
2015/06/30 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Golang 实现WebSockets
2022/04/24 Golang
SQL中的连接查询详解
2022/06/21 SQL Server