Syncthing就是我要的同步備份軟件


Syncthing就是我要的同步備份軟件
原創徐念安 發布於2019-02-07 23:10:25 閱讀數 2586 收藏
展開
Syncthing就是我要的同步備份軟件
引言
數據無價,平時不注意備份,電腦突然翻車就追悔莫及啦。

最開始的時候,我在路由器上開啟 Samba,每次編輯完項目就手動拷貝到路由器硬盤里,麻煩程度可想而知,后來又用了 Google Drive/One Drive,又因為它們的網絡不理想,就又放棄使用了。

其實就是很簡單的需求,自動備份、速度快,然后去找了一下,發現一堆人推薦用 Rsync,這貨我只在 VPS 上用過,拿來做鏡像同步,但是要做實時同步,不好配置。

我就想,這需求應該有一大堆人有吧,就去 github 搜索 sync,發現 Syncthing 這么個好東西,截止 2018-06-13 已經得到 20k+ 的 star,並且更新很活躍

介紹


Syncthing 是一個文件連續同步軟件

項目地址:https://github.com/syncthing/syncthing

它有以下特性:

跨平台

使用 Golang 開發,幾乎能在所有平台上使用,包括常見的安卓手機和路由器平台
易於使用

只需要下載運行,打開瀏覽設置本地目錄和遠程主機,其他的不需要管
安全

管理頁可以設置密碼,可以設置 https,設置備份需要兩邊都確認,使用唯一設備標識進行確認
安裝
Syncthing 有多種安裝方式

有一定 Linux 基礎的人,可以使用下面的配置來設置啟動服務

https://github.com/syncthing/syncthing/tree/master/etc
Windows,Mac,Linux 和安卓手機可以在這里下載有 GUI 界面的程序使用

https://docs.syncthing.net/users/contrib.html#gui-wrappers
其他方法可以自己決定,我是直接下載安裝包命令行啟動的

在 MacOS 上安裝
我用的是 MacOS,可以直接使用 homebrew 安裝啟動,並且可以開機自動啟動,你也可以到這里 QSyncthingTray 下載 MacOS 的 GUI 版

brew install syncthing

啟動服務(同時設置開機啟動)

brew services start syncthing

停止服務(同時關閉自啟)

brew services stop syncthing

手動啟動(不會開機自啟)

syncthing

啟動進程后,可以用瀏覽器打開 http://localhost:8384/ 來查看 web 管理頁

在 Windows 上安裝
Windows 直接在這里 SyncTrayzor https://github.com/canton7/SyncTrayzor/releases 下載軟件運行

在 Linux VPS 上安裝
大多數發行版和不同 CPU 平台的安裝包,可以在這里 Syncthing 找到,把它下載到你想要放在的目錄然后設置權限,使用命令運行

文章開頭有 GUI 版本的鏈接,不過我要裝在沒有 GUI 的 VPS 上,所以直接用命令行運行,系統用的是 Debian 9,然后用 supervisor 進程守護來啟動的

碰巧前幾天之前的一個客戶,他的 VPS 做遷移,阿里雲送了張代金券,然后客戶就送給我了

 

然后續費 9 個月的阿里雲學生機,美滋滋?

雖然帶寬比較低,但是對於這種連續同步的備份來說,在第一次備份之后,后面都是增量備份了,除非你都是備份大文件,要不對帶寬的要求不是很高,另外 40G 的盤,完全夠我備份用了,阿里雲最主要就是穩定,很適合做我的備份機

下載 Syncthing
下載最新的包,解壓,移動到 /bin/ 里,改權限

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

tar xzvf ./syncthing-linux-amd64-v0.14.49-rc.1.tar.gz

mv ./syncthing-linux-amd64-v0.14.49-rc.1/syncthing /bin/

chmod +x /bin/syncthing

進程守護
安裝 supervisor

apt-get install supervisor

配置守護

vi /etc/supervisor/conf.d/syncthing.conf

填入以下內容

[program:syncthing]
command = /bin/syncthing -no-browser -home="/root/.config/syncthing"
directory = /root
autorestart = True
user = root
environment = STNORESTART=“1”, HOME="/root"

注意,我例子里使用的是 root 用戶,所以響應的目錄是 /root,你要是使用其他用戶,應該是 /home/用戶名,就是你登錄時默認所在的目錄

現在就可以使用 supervisorctl 命令來管理進程了

啟動
supervisorctl start syncthing

重啟
supervisorctl restart syncthing

停止
supervisorctl stop syncthing

啟動進程后,可以用瀏覽器打開 http://你的IP:8384/ 來查看 web 管理頁

如果無法打開頁面,需要修改 /.config/syncthing/config.xml 里的 127.0.0.1:8384 字段為 0.0.0.0:8384,或者你可以和我一樣使用 nginx 做反向代理,前提是你知道怎么做

在路由器上安裝
目前 Entware 源里已經有這個包了,但是我發現它是個舊版本,並且有問題,所以這里我選擇手動安裝

這里的例子是 LEDE x64 但是也適合一切安裝了 Entware 的路由器

在這里 Syncthing 下載對應 CPU 平台的安裝包,可以用 uname -m 查看,我這里是 x86_64 所以選擇 amd64

下載 syncthing
下載最新的包,解壓,移動到 /opt/bin/ 里,改權限

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

tar xzvf ./syncthing-linux-amd64-v0.14.49-rc.1.tar.gz

mv ./syncthing-linux-amd64-v0.14.49-rc.1/syncthing /opt/bin/

chmod +x /opt/bin/syncthing

添加啟動命令
創建並編輯 /opt/etc/init.d/S92syncthing

vi /opt/etc/init.d/S92syncthing

在里面填上下面所有字段

#!/bin/sh
ENABLED=yes
PROCS=syncthing
ARGS="-home=/opt/etc/syncthing"
PREARGS=""
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if [ ! -d /opt/etc/syncthing ]; then
/opt/bin/syncthing -generate="/opt/etc/syncthing"
sed -i ‘s|127.0.0.1:8384|0.0.0.0:8384|’ /opt/etc/syncthing/config.xml
elif [[ -f /opt/etc/syncthing/config.xml -a “127.0.0.1:8384”==“127.0.0.1:8384” ]]; then
sed -i ‘s|127.0.0.1:8384|0.0.0.0:8384|’ /opt/etc/syncthing/config.xml
fi

. /opt/etc/init.d/rc.func

然后給權限

chmod +x /opt/etc/init.d/S92syncthing

用法: /opt/etc/init.d/S92syncthing (start|stop|restart|check)

啟動服務就能在瀏覽器打開 路由器IP:8384 例如 192.168.1.1:8384 打開管理頁了

使用方法
易於使用是 Syncthing 的一個重要特性,打開管理頁,一目了然

首次打開管理頁,所有平台上都是一樣的

 

然后你需要做的就是

設置用戶名、密碼


設置文件夾
刪除默認的同步文件夾,添加新同步文件夾

 

添加遠程設備


然后稍微等一分鍾,兩邊就能連接上了

最終效果

 

結語
Syncthing 作為一款跨平台同步軟件,它簡單易用、功能完善強大,具有很高的穩定性,很容易讓人想出各種使用場景,而且它還是開源的,感謝那上百位貢獻者

本文簡單介紹了初級使用方法,還未提及其他的諸如版本控制等功能,其他功能應用,如果以后我覺得值得一說,再更新了

本文章發表於底噪博客 https://zhih.me , 轉載請注明
————————————————
版權聲明:本文為CSDN博主「徐念安」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/geekmubai/article/details/86773558


免責聲明!

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



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