搜索

首页  >  问答  >  正文

python如何操作rsync

rt
没找到相关模块

PHP中文网PHP中文网2809 天前512

全部回复(2)我来回复

  • 迷茫

    迷茫2017-04-17 17:31:19

    有几种可选的解决方案,可以根据实际情况(运行平台,应用需求)进行取舍。

    方案一、用python封装对本地rsync程序的调用
    设若需求比较简单,且运行平台上有rsync的本地程序可用,可以使用subprocess模块封装对rsync的调用命令(也可以使用os模块进行封装,原理上是一样的),例如:

    cmd = "rsync -avrz /opt/data/filename root@ip:/opt/data/file"
    subprocess.call(cmd, shell=True)
    

    这种方案的优点是实现简单,不容易有bug。缺点是如果你在Windows平台上运行,就比较麻烦,需要安装本地的rsync程序,比如通过cygwin进行安装之类。

    方案二、python对rsync协议的实现:
    在Bitbucket上Vivian De Smedt提供了一个针对rsync的python实现,体积很小只有15KB。
    https://bitbucket.org/vds2212/rsync.py

    这种做法的优点是平台无关,只要是运行python的平台都能用。但是由于这是个人的实现,所以可能会有bug,会与标准rsync不兼容,需要花时间学习脚本的使用方式等等问题。

    如果目的只是希望在Linux平台上,在python脚本中调用rsync完成一个自动化的日常维护任务,那么推荐第一种方案。

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:31:19

    呵呵,没有搜索相关模块....
    只搜索pypi能找到好几个.
    https://pypi.python.org/pypi?%3Aaction=search&term=rsync&submit=search

    回复
    0
  • 取消回复