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 16 Python
bat和python批量重命名文件的实现代码
May 19 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
Jun 23 Python
python使用pymysql实现操作mysql
Sep 13 Python
详解Django之auth模块(用户认证)
Apr 17 Python
python编程使用协程并发的优缺点
Sep 20 Python
Python脚本修改阿里云的访问控制列表的方法
Mar 08 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
php创建session的方法实例详解
2015/01/27 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
python安装以及IDE的配置教程
2015/04/29 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
在python中bool函数的取值方法
2018/11/01 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
学python安装的软件总结
2019/10/12 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
法国春天百货官网:Printemps.com
2020/06/29 全球购物
服装销售人员求职自我评价
2013/09/26 职场文书
廉洁教育学习材料
2014/05/19 职场文书
房展策划方案
2014/06/07 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA