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简单操作sqlite3的方法示例
Mar 22 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
Java及python正则表达式详解
Dec 27 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
python操作oracle的完整教程分享
Jan 30 Python
python计算日期之间的放假日期
Jun 05 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
使用Python的networkx绘制精美网络图教程
Nov 21 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
Dec 03 Python
python字典与json转换的方法总结
Dec 28 Python
Python实现排序方法常见的四种
Jul 15 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漏洞小结
2012/02/05 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Jquery 绑定时间实现代码
2011/05/03 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
bootstrap table复杂操作代码
2016/11/01 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
2019/12/20 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
python cs架构实现简单文件传输
2020/03/20 Python
Python检测数据类型的方法总结
2019/05/20 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
梅西百货官网:Macy’s
2020/08/04 全球购物
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
2014最新实习证明模板
2014/10/02 职场文书
信用卡工资证明范本
2014/10/17 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
详解Python内置模块Collections
2022/03/22 Python