Synology NAS 自動鏡像備份遠端 VPS 指定目錄

2023/11/10 432 1 儲存裝置 , 伺服器 , NAS

我這邊已經在本地(自家)架設好 Synology NAS,型號是 DiskStation DS423+,空間我目前可以使用 14 TB,存放家庭與個人資料算是綽綽有餘,不過因為我自身有在基於 Linux 系統的 VPS 上架設網站,雖然 VPS 供應商宣稱有每日備份,但還是希望大概一週能備份回我自己的本地雲端(就是 NAS 啦!),因此有了用 Synology NAS「自動鏡像備份遠端 VPS 指定目錄」的想法。由於達成這個目標是需要會基本 Linux 操作,也就是打指令,我這邊只會把步驟項用文字帶過,懂得人應該就能直接參考我的教學了。


▲ 以前就很流行用一張精選照片增加文章曝光,現在有 Bing AI 幫忙繪製真的方便很多,離題了,這次要用到的工具是 rsync,它是一個強大的遠端同步程式,主要用於在本地和遠端主機之間進行檔案和目錄的備份與同步。它能夠有效地傳輸大量資料,並且只傳輸發生變動的部分,以節省網路頻寬。首先您需要為您的 VPS 建立無密碼登入方案,一般都是用 SSH 公開金鑰認證的方式登入,rsync 也能透過這個方式自動登入 VPS 囉!要注意的是金鑰存放到 NAS 時要對它進行 chmod 666,這個可能要用 ssh 的方式連入 NAS 做設定,web 介面似乎無法做這件事。

▲ 在 NAS 開一個目錄叫做 Systems(我自己亂取的名字,隨意),裡面加個 key 子目錄用來放連線 VPS 的金鑰,然後分別建立取得資料的 sh 檔案及自動刪除資料的 sh 檔案,因為我希望 NAS 端備份的資料過期會自動刪除。

我自己為萌芽系列網站備份機制寫的 NAS 端 sh 腳本如下,僅供參考:

auto-get-mnyatw-backup.sh

#!/bin/sh

# 遠端伺服器的資訊
REMOTE_BACKUP_DIR="/mnyatw/backup/"

# 本地伺服器的資訊
LOCAL_BACKUP_DIR="/volume1/homes/xxxxx99/Backup/萌芽系列網站/"

# rsync 命令執行同步
rsync -avzP -e "ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -i /volume1/homes/xxxxx99/Systems/key/mnyatw/key" [使用者名稱]@[VPS位址]:$REMOTE_BACKUP_DIR $LOCAL_BACKUP_DIR

※ ServerAliveInterval=60 是用來保持 SSH 連線用的指令。

auto-delete-mnyatw-backup.sh

#!/bin/bash
# 要刪除的目錄路徑
directory="/volume1/homes/xxxxx99/Backup/萌芽系列網站"

# 刪除超過 22 天的目錄
find "$directory" -type d -ctime +22 -exec echo "delete: {}" \;
find "$directory" -type d -ctime +22 -exec rm -R {} \;


▲ 接著到 NAS 的 Web 介面的「控制台」→「任務排程表」內新增兩個排程分別執行剛剛建立的兩個 sh 腳本。

▲ 執行方式就是 /bin/bash /path/to/run.sh,放到使用者定義指令碼中即可,排程我設置一週一次,可以將 Log 保存,這個可以看個人需求去設定。希望能幫助大家囉!NAS 本身就是基於 Linux 的個人伺服器,因此您若懂得 Linux 基本操作,能做的事情就會非常多,自動化一切重複事務交由機器去跑就可以啦!人類就是去做更有創意力的事情。

贊助廣告 ‧ Sponsor advertisements

留言區 / Comments

萌芽論壇