搜尋

首頁  >  問答  >  主體

python如何操作rsync

rt
没找到相关模块

PHP中文网PHP中文网2809 天前513

全部回覆(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
  • 取消回覆