文件夾自動同步工具


這是我之前開發的文件夾自動同步工具,主要實現開發機和服務器之間的文件夾同步。

項目地址:

 https://github.com/mike-zhang/autoSync

問題描述

在windows下修改代碼,到服務器上去編譯,但每次都要通過winscp之類的工具拖拽上去(當然你也可以通過scp命令行的方式)。

每次修改的文件很少,而且可能位於不同的目錄,每次都重復覆蓋文件的操作感覺比較麻煩,所以開發了這個自動文件夾自動同步工具。

當然這個工具也可以用於兩台linux服務器之間的文件夾同步。

工具介紹

該工具的原理就是監控本地文件狀態,根據捕捉到的事件觸發相關的動作,通過命令操作實現文件夾的同步。

配置文件說明:

host : 服務器地址
sshPort : 服務器ssh端口
user : 用戶名
password : 密碼
localDir : 需要同步的文件夾
remoteDir : 同步到服務器的文件夾
fileExcept :不同步的文件

示例代碼配置文件:

<config>
    <host>127.0.0.1</host>
    <sshPort>22</sshPort>
    <user>root</user>
    <password>123456</password>
    <localDir>.</localDir>
    <remoteDir>/tmp/t1</remoteDir>

    <fileExcept>
        <file>f1.txt</file>
        <file>data/f2.txt</file>
    </fileExcept>

</config>

依賴庫:

paramiko :ssh操作庫

watchdog :用於監控本地文件夾狀態

可以通過pip方式安裝,命令如下:

pip install paramiko
pip install watchdog

工具使用示例如下:

$ python autoSync.py default.xml

討論

1、如果想以單獨的exe文件共享給朋友該怎么操作?

可以通過pyinstaller打包為單獨的二進制文件,命令如下: pyinstaller.py -F autoSync.py

exe位於 autoSync/dist 目錄下

pyinstaller地址:https://github.com/pyinstaller/pyinstaller 

 2、如需使用rsync進行同步可參考我之前的博文: 

http://www.cnblogs.com/MikeZhang/p/rsyncExample_20160818.html

好,就這些了,希望對你有幫助。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170617_文件夾自動同步工具.rst

歡迎補充 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM