python scp 批量同步文件的实现方法

 更新时间:2019年01月03日 12:07:00   作者:亦非我所愿丶  
今天小编就为大家分享一篇python scp 批量同步文件的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

该脚本用于将源主机列表路径下的所有文件同步于目标主机的/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线程锁(thread)学习示例

    python线程锁(thread)学习示例

    python thread提供了低级别的、原始的线程以及一个简单的锁,下面提供一个python线程线程锁(thread)学习示例,大家参考使用
    2013-12-12
  • Python深入分析@property装饰器的应用

    Python深入分析@property装饰器的应用

    这篇文章主要介绍了Python @property装饰器的用法,在Python中,可以通过@property装饰器将一个方法转换为属性,从而实现用于计算的属性,下面文章围绕主题展开更多相关详情,感兴趣的小伙伴可以参考一下
    2022-07-07
  • Python中使用pymysql连接MySQL数据库进行数据查询

    Python中使用pymysql连接MySQL数据库进行数据查询

    在当今数字化时代,数据的重要性不言而喻,而数据库作为数据存储与管理的核心工具,在各类应用系统中扮演着关键角色,Python 作为一种广泛使用的编程语言,提供了多种与数据库交互的方式,其中 pymysql 库是连接 MySQL 数据库的常用选择之一,需要的朋友可以参考下
    2025-01-01
  • python异步编程之asyncio低阶API的使用详解

    python异步编程之asyncio低阶API的使用详解

    asyncio中低阶API的种类很多,涉及到开发的5个方面,这篇文章主要为大家详细介绍了这些低阶API的具体使用,感兴趣的小伙伴可以学习一下
    2024-01-01
  • Python anaconda安装库命令详解

    Python anaconda安装库命令详解

    这篇文章主要介绍了Python anaconda安装库命令详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Python 标准库 fileinput与文件迭代器

    Python 标准库 fileinput与文件迭代器

    这篇文章主要介绍了Python标准库fileinput与文件迭代器,fileinput模块可以对一个或多个文件中的内容进行迭代、遍历等操作,更多详细内容需要的朋友可以参考一下
    2022-09-09
  • python3注册全局热键的实现

    python3注册全局热键的实现

    这篇文章主要介绍了python3注册全局热键的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Python实现的插入排序算法原理与用法实例分析

    Python实现的插入排序算法原理与用法实例分析

    这篇文章主要介绍了Python实现的插入排序算法原理与用法,简单描述了插入排序的原理,并结合实例形式分析了Python实现插入排序的相关操作技巧,需要的朋友可以参考下
    2017-11-11
  • 详解Pytorch如何利用yaml定义卷积网络

    详解Pytorch如何利用yaml定义卷积网络

    大多数卷积神经网络都是直接通过写一个Model类来定义的,这样写的代码其实是比较好懂,也很方便。但是本文将介绍另一个方法:利用yaml定义卷积网络,感兴趣的可以了解一下
    2022-10-10
  • 基于Python快速处理PDF表格数据

    基于Python快速处理PDF表格数据

    这篇文章主要介绍了基于Python快速处理PDF表格数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论