這是我之前開發的文件夾自動同步工具,主要實現開發機和伺服器之間的文件夾同步。 項目地址: https://github.com/mike-zhang/autoSync 問題描述 在windows下修改代碼,到伺服器上去編譯,但每次都要通過winscp之類的工具拖拽上去(當然你也可以通過scp命令行的 ...
這是我之前開發的文件夾自動同步工具,主要實現開發機和伺服器之間的文件夾同步。
項目地址:
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
好,就這些了,希望對你有幫助。
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170617_文件夾自動同步工具.rst
歡迎補充