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进程的信号通讯

    初步理解Python进程的信号通讯

    这篇文章主要介绍了初步理解Python进程的信号通讯,作者列举了Linux系统下的信号通讯示例,需要的朋友可以参考下
    2015-04-04
  • python网络编程学习笔记(四):域名系统

    python网络编程学习笔记(四):域名系统

    当我们在上网的时候,通常输入的是网址,其实这就是一个域名,而我们计算机网络上的计算机彼此之间只能用IP地址才能相互识别
    2014-06-06
  • 详解Python 数据库 (sqlite3)应用

    详解Python 数据库 (sqlite3)应用

    本篇文章主要介绍了Python标准库14 数据库 (sqlite3),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
    2016-12-12
  • Python中使用glob和rmtree删除目录子目录及所有文件的例子

    Python中使用glob和rmtree删除目录子目录及所有文件的例子

    这篇文章主要介绍了python中使用glob和rmtree删除目录子目录及所有文件的例子,需要的朋友可以参考下
    2014-11-11
  • 在Python的Flask中使用WTForms表单框架的基础教程

    在Python的Flask中使用WTForms表单框架的基础教程

    WTForms由Python写成,为表单而生,提供了很多制作Web表单的实用API,和Flask框架结合使用效果拔群,这里我们就一起看一下在Python的Flask中使用WTForms表单框架的基础教程
    2016-06-06
  • Python的高级Git库 Gittle

    Python的高级Git库 Gittle

    Gittle是一个高级纯python git 库。构建在dulwich之上,提供了大部分的低层机制
    2014-09-09
  • python中的错误处理

    python中的错误处理

    异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理。
    2016-04-04
  • Python如何判断数独是否合法

    Python如何判断数独是否合法

    这篇文章给大家介绍了如何利用Python判断数独是否合法,对大家学习python有一定的参考借鉴价值,有需要的可以一起来看看。
    2016-09-09
  • python 正确保留多位小数的实例

    python 正确保留多位小数的实例

    今天小编就为大家分享一篇python 正确保留多位小数的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python调用C# Com dll组件实战教程

    Python调用C# Com dll组件实战教程

    下面小编就为大家带来一篇Python调用C# Com dll组件实战教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论