Synology 有提供 Hyper Backup 這樣的應用程式來提供各種備份需求,但遺憾的是靈活度依舊不太夠。

目前的需求是我要每天把 Synology 上的所有資料同步到另一個 QNAP 上,Hyper Backup 能做,但最多幫我備份成 .hbk 的壓縮檔案。所以今天 Synology 若掛了,就算我已經每天備份了喔,但第一個瞬間依然沒辦法用 QNAP 來馬上做資料讀取,因為 .hbk 檔案要另外拿 Synology 來復原或用獨家的軟體來讀取!

Synology 對 Synology 或是 QNAP 對 QNAP 都能夠做到 plain file 的排程備份,但兩家互相備份那就抱歉,你自己想辦法。十分討厭,明明提供了很多 rsync 的選項,但這個挺基本的需求咋就做不到啊?到底為啥要強迫我們用 .hbk 檔案?

兩家的作業系統都各有短板,反正找了一圈,就是做不到 Synology → QNAP 的 plain file 排程備份。笑死,若其實可以,請務必告訴我。

此文來手動解決此一需求。

Synology 端設定

在終端機設定中,打開 SSH 功能。

在檔案服務 > rsync 中,啟用 rsync 服務並且用 rsync 帳號。然而這個賬號並不能拿來 SSH 進去,我真的會笑死。於是我們要從使用者與群組設定中,把這個 rsync 帳號提權成 admin,才能繼續走下去。

另外我們還要在使用者與群組 > 進階設定中,打開家目錄服務,等等會用到。

QNAP 端設定

一樣打開 SSH 功能。

SSH 進去終端裡面我們來手尻備份排程。用到的指令大概長這樣:

1
rsync -avh --delete -e "ssh -i ${SSH_KEY}" ${SRC_USER}@${SRC_HOST}:/volume1/orz/ "${DEST_BASE}/orz/"

為什麼要走 ssh -i 呢,因為我們要自動排程。那所以我們是不是要把公鑰放到 Synology 那邊呢?沒錯。所以我們是不是要 SSH 進去放呢?對。但 Synology 並不開放 rsync 帳號的 SSH 功能,所以剛剛要提權。

那麼公鑰我們是不是要放在家目錄中呢?所以剛剛要先開好。

然後 QNAP 的作業系統有沒有提供排程跑自定腳本呢?沒有。我的老天鵝。(Synology 有)

所以我們一樣自己尻 cron,每天凌晨一點跑:

1
0 1 * * * /share/scripts/orz.sh

後話

大概就是這樣,其實實際解決並不困難,所有的時間都花在找「那理論上應該要幫我做好的功能」上。然後最後沒有這個功能。

所以這是一篇技術筆記嗎?不是,這是一篇抱怨文!

2026 年了!你兩位做 NAS 的,對面公牛跟綠聯虎視眈眈,再不像個人,改天就被淘汰了。

Hmm… 打到這邊想想,是不是其實有這個功能但我不知道去哪裡設定而已?