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中装饰器的使用
Jul 12 Python
使用python实现生成用户信息
Mar 20 Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
python队列queue模块详解
Apr 27 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
利用python在excel里面直接使用sql函数的方法
Feb 08 Python
Python实现分数序列求和
Feb 25 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
详解python算法常用技巧与内置库
Oct 17 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
php解析url的三个示例
2014/01/20 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
createElement与createDocumentFragment的点点区别小结
2011/12/19 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
浅谈$_FILES数组为空的原因
2017/02/16 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
Python解析nginx日志文件
2015/05/11 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017/09/24 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Python使用folium excel绘制point
2019/01/03 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
Django实现网页分页功能
2019/10/31 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
初中地理教学反思
2014/01/11 职场文书
机械个人求职信范文
2014/01/24 职场文书
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers