1. 程式人生 > >記錄一款開源數據同步工具syncthing

記錄一款開源數據同步工具syncthing

同步工具

最近在為些共有雲遷移的問題而頭痛,數據的不間斷同步成為了需要考慮的首要問題,如何能夠更加便利的幫助我們完成這項工作呢?Sync,sync,syncsomething,無意間發現這款貌似已經很流行的軟件(只可惜我剛註意到它,還好為時不晚)。我迫不及待的自己安裝測試了下,效果很好,大概總結有以下優點:

1、跨平臺性,支持linux,windows,mac,安卓等市面主流系統;
2、安全性,所有的文件傳輸均默認通過TSL控制,加密傳輸,避免文件泄露;
3、實時性,文件的檢測機制可以人性化調節,任意的時間間隔進行文件比對;
4、雙向或單向同步任意控制,可以滿足所有的傳輸需求;

安裝和簡單的配置使用過程:

實驗環境:兩臺linux服務器

linux1:本地內網虛擬機172.20.6.173
linux2:公網服務器192.x.x.x

使用 wget 命令在兩臺服務器上分別下載最新版本 Syncthing 軟件包:

wget https://github.com/syncthing/syncthing/releases/download/v0.14.32/syncthing-linux-amd64-v0.14.32.tar.gz

使用 tar 命令解壓軟件包:

tar zxvf syncthing-linux-amd64-v0.14.32.tar.gz

將 syncthing 二進制文件復制到 /usr/bin 目錄:

sudo cp syncthing-linux-amd64-v0.14.32/syncthing /usr/bin/

設置開機自啟動

由於我們要將 syncthing 運行在雲服務器上,且通常沒有用戶登錄,因此,應該將Syncthing 註冊為系統級服務。將系統級服務配置文件復制到 /etc/systemd/system 目錄:
sudo cp syncthing-linux-amd64-v0.14.32/etc/linux-systemd/system/[email protected] /etc/systemd/system/

重命名服務配置文件:

mv /etc/systemd/system/[email protected]
/etc/systemd/system/[email protected]

添加自啟動

systemctl enable [email protected]

啟動

systemctl start [email protected]

註意:因為涉及到權限安全的問題,這裏最好不要使用root用戶直接運行syncthing工具,建議創建一個專門用於該工具的用戶,例如:我創建的是syncthing。

配置 Syncthing

配置遠程訪問

由於 syncthing 默認只允許本地訪問管理界面,為了實現通過互聯網訪問管理界面,需要修改 syncthing 的配置文件:
vim .config/syncthing/config.xml
將配置文件中的 <address>127.0.0.1:8384</address> 修改為<address>0.0.0.0:8384</address>。
現在就可以打開瀏覽器,使用 IP:8384 形式訪問管理界面,例如,本例使用的雲服務器公網 IP 為 172.20.6.173如下圖
技術分享圖片
PS:這裏需要註意的是我們的配置文件這部分是只有在先啟動服務以後才會生成

設置身份認證

由於我們在上一步開放了遠程訪問,初次訪問管理界面會顯示類似下圖的提示,要求設置登錄管理界面的用戶名和密碼,點擊 設置 按鈕。
技術分享圖片

如下圖所示,在設置界面中輸入用戶名和密碼。
提示:同時建議將 啟動瀏覽器 取消勾選,這個功能是當啟動 syncthing 時自動激活瀏覽器打開管理界面。在雲服務器上 syncthing 以服務模式運行不需此功能。
技術分享圖片
設置完畢保存後,會要求重啟 syncthing,點擊 重啟 Syncthing 按鈕即可。
技術分享圖片
重啟完成後,管理界面會自動刷新,並要求身份驗證,只有正確輸入前面設置的用戶名和密碼才能進入管理界面。
技術分享圖片

同步的兩臺設備需要互相添加機器

技術分享圖片
技術分享圖片

syncthing有自己的版本控制及指定同步文件夾或者指定僅發送還是接受和發送
可以在.config/syncthing/config.xml配置文件中修改配置或者是在圖形化的web面板中進行修改:
技術分享圖片
技術分享圖片
**

記錄一款開源數據同步工具syncthing