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数据类型转换函数总结
Mar 11 Python
python同时给两个收件人发送邮件的方法
Apr 30 Python
Python的Django框架中的数据库配置指南
Jul 17 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
python基于物品协同过滤算法实现代码
May 31 Python
python指定写入文件时的编码格式方法
Jun 07 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
图神经网络GNN算法
May 11 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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP可变函数的使用详解
2013/06/14 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
js技巧--转义符"\"的妙用
2007/01/09 Javascript
js输出列表实现代码
2010/09/12 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
ES6中字符串string常用的新增方法小结
2017/11/07 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
python实现多线程采集的2个代码例子
2014/07/07 Python
python中星号变量的几种特殊用法
2016/09/07 Python
python3人脸识别的两种方法
2019/04/25 Python
Python实现分数序列求和
2020/02/25 Python
保险专业求职信
2014/07/07 职场文书
2014年医生工作总结
2014/11/21 职场文书
学校食堂管理制度
2015/08/04 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2019入党申请书格式
2019/06/25 职场文书