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自动化测试实例解析
Sep 28 Python
在Python程序中进行文件读取和写入操作的教程
Apr 28 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
Django urls.py重构及参数传递详解
Jul 23 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 Python
python等待10秒执行下一命令的方法
Jul 19 Python
python两种注释用法的示例
Oct 09 Python
Python基本知识点总结
Apr 07 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
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
总结对比php中的多种序列化
2016/08/28 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
Knockoutjs的环境搭建教程
2012/11/26 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
详解vue中axios的封装
2018/07/18 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
python简单实现旋转图片的方法
2015/05/30 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
Python字典简介以及用法详解
2016/11/15 Python
Python 基础知识之字符串处理
2017/01/06 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python入门必须知道的11个知识点
2018/03/21 Python
tensorflow 实现数据类型转换
2020/02/17 Python
Pycharm Git 设置方法
2020/09/15 Python
Flask处理Web表单的实现方法
2021/01/31 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
适用于所有创业者的创业计划书
2014/02/05 职场文书
秋游活动策划方案
2014/02/16 职场文书
优秀语文教师事迹
2014/05/18 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书