建置好wordpress網站後,雖然也設定好了定期備份(不論你是用什麼工具,什麼方式,或是像我是用Backup Migration的定期備份方式),辛苦備份下來的網站備份檔也要找個合適的地方儲存下來,這樣未來如網站掛了要復原時才能找到資料。
像我本身是用Raspberry Pi 4主機來架站的,備份下來的網站都是儲存在Raspberry Pi 4的SD卡上面。以前在Raspberry Pi 3時常常有時沒事SD卡就沒法讀取,整個系統又要重頭來過。所以我的網站備份檔如果只是單純儲存在Raspberry Pi 的SD卡上我也有點不放心。
因為家裏有NAS,最好的儲存方式當然就是放到NAS中了。可是Backup Migration的免費版本又不支援SFTP的備份模組,要如何定期地將網站備份檔上傳到NAS中保存就要想一下了。
在Linux系統中最好用的同步方式應該就算是rsync了。一般的NAS應該也都能被設定成是rsync server,這樣就可以讓我的Raspberry Pi 4作為rsync client,定期將檔案備份到NAS中。
設定rsync server
rsync server的設定如果是要在Linux server上設定的話,可以參考這份文章。
像我是使用Austor NAS,所以我主要就是在NAS介面中啟用rsync server服務,並建立一個資料夾或目錄,另外再設定一組帳號及密碼後,就可以提供rsync server的服務了。

設定rsync client
在rsync client端的設定,主要是在要使用的使用者家目錄中建立一個叫作rsync.secret的檔案,其中只要加入一行密碼即可。這份rsync.secret的存取權限要設定為只有這位使用者可讀寫。
ubuntu@ubuntu:~$ ll rsync.secret
-rw------- 1 ubuntu ubuntu 10 Jun 5 14:23 rsync.secret
定期備份
接著就是要使用rsync的指令來進行備份,大致上的指令如下:
rsync -avrHSh --delete --password-file=/home/ubuntu/rsync.secret /var/wwwdata/html/blog/wp-content/backup-migration-wcgYje47R8/backups/ rpiuser@192.168.2.142::rpi-wordpress
-avrHSh的指令是指:
- a : archieve,用壓縮的方式傳送
- v : 輸出更多細節
- r : 遞迴所有目錄
- H: hard link
- S: 更有效地處理空白檔案
- h:易讀模式顯示
–delete 表示要刪除目的區中已不存在於來源區地的檔案。但這項功能有個特別的地方就是你的來源區必須要是個「目錄」,不能是特別指定的檔案(例如*.zip)
–password-file=<file>,用來指定密碼檔
接著就是來源目錄(及檔案類型,如果要指定的話)。後面接著就是rsync server的設定,主要包含三部份:<username>@IP::rsync-server-settings
- username:就是rsyn server中的使用者
- IP:是rsync server的IP
- rsync-server-settings:就是rsync server上所要使用的設定檔區段(例如我是用NAS設定,那就是如上圖中的那個名稱
結論
最後可以將上述的rsync備份指令設定到crontab中定期執行就可以安全地將網站備份檔給備份到另一個地方保存了。