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 list语法学习(带例子)
Nov 01 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
python 实现将字典dict、列表list中的中文正常显示方法
Jul 06 Python
python的链表基础知识点
Sep 13 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Python 批量下载阴阳师网站壁纸
May 19 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 Python
python+opencv实现目标跟踪过程
Jun 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
社区(php&&mysql)六
2006/10/09 PHP
让你的网站首页自动选择语言转跳
2006/12/06 PHP
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
手写一个python迭代器过程详解
2019/08/27 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
在校实习生求职信
2014/06/18 职场文书
2014年防汛工作总结
2014/12/08 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
怎样写离婚协议书
2015/01/26 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
Oracle 触发器trigger使用案例
2022/02/24 Oracle
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android