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之通过Python连接数据库
Oct 28 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python实现二分查找与bisect模块详解
Jan 13 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
对命令行模式与python交互模式介绍
May 12 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
pytorch 自定义数据集加载方法
Aug 18 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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实现的MySQL数据浏览器
2007/03/11 PHP
php auth_http类库进行身份效验
2009/03/19 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
2015/11/23 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
python保存网页图片到本地的方法
2018/07/24 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
python elasticsearch从创建索引到写入数据的全过程
2019/08/04 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
python实现同一局域网下传输图片
2020/03/20 Python
Python接口测试文件上传实例解析
2020/05/22 Python
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
介绍Java的内部类
2012/10/27 面试题
计算机网络专业推荐信
2013/11/24 职场文书
员工考核管理制度
2014/02/02 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python