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 ftp上传文件
Feb 13 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python中模块查找的原理与方法详解
Aug 11 Python
python生成随机图形验证码详解
Nov 08 Python
python实现决策树
Dec 21 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
Python3.5装饰器典型案例分析
Apr 30 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Python 实现定积分与二重定积分的操作
May 26 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中遍历stdclass object的实现代码
2011/06/09 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
PHP静态成员变量
2017/02/14 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
层序遍历在ExtJs的TreePanel中的应用
2009/10/16 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
TensorFlow实现创建分类器
2018/02/06 Python
python简易远程控制单线程版
2018/06/20 Python
对python sklearn one-hot编码详解
2018/07/10 Python
Python 忽略warning的输出方法
2018/10/18 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python队列原理及实现方法示例
2019/11/27 Python
django自定义非主键自增字段类型详解(auto increment field)
2020/03/30 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
环境整治工作方案
2014/05/18 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
卖车协议书范例
2014/09/16 职场文书
专家推荐信范文
2015/03/26 职场文书
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python