NAS 離線備份
用 USB 外接硬碟做離線備份
多一份備份,多一份安心。這篇說明如何在 Synology NAS 上用 Hyper Backup 備份到外接 USB 硬碟,備份完成後自動卸載,並在下一次備份前用指令碼重新掛載——讓 USB 平時保持離線,兼顧安全與便利。
USB 碟平時不掛載,勒索軟體與誤刪都碰不到它;只有在備份的那幾分鐘才短暫掛載。相當於一份「離線/冷備份」。
Hyper Backup 備份成功後自動卸載 USB;下一次備份前,用任務排程執行一段 root 指令碼,依 VID / PID 重新授權並掛載 USB。
00事前準備
開始前,請先具備以下條件:
必備知識與套件
- Hyper Backup(DSM套件中心安裝)——負責備份與備份後自動卸載。
- 任務排程表(DSM 控制台)——用來排定「重新掛載」指令碼。
01運作原理:一個備份循環
整個機制是一個週而復始的循環。USB 只在「掛載 → 備份 → 卸載」這段期間上線,其餘時間都保持離線:
02設定步驟
用 Hyper Backup 建立備份任務
- 目的地類型選「本地資料夾與 USB 裝置」,目的地資料夾設在 usbshare。
- 切勿選「單一版本」——單一版本無法在備份結束時自動卸載備份目的地外接裝置。
選擇備份內容,並開啟「完成後自動卸載」
- 勾選要備份到外接硬碟的共用資料夾或套件。
- 於任務設定勾選「備份任務成功結束時,自動卸載目的地外接裝置」。這一步是「離線」的關鍵。
查出 USB 的 PID/VID,建立掛載指令碼
USB 被自動卸載後會取消授權,需要一段指令碼把它「重新授權」才能再次掛載。請先查出 USB 磁碟的 PID / VID,請參考:Synology KB:如何查看 USB 裝置的 PID 與 VID。
接著在「控制台 → 任務排程表 → 新增 → 觸發的任務 → 使用者定義的指令碼」建立一個排程,使用者選 root,並在「執行指令」貼上下方腳本(把 VID、PID 換成你查到的值):
#!/bin/bash
# 掛載(重新授權)指定的 USB 外接硬碟
# 先查出你的 USB 碟 VID/PID,再填入下方(以下xxxx yyyy 為範例值)
set -euo pipefail
IFS=$'\n\t'
VENDOR="xxxx"
PRODUCT="yyyy"
for DIR in $(find /sys/bus/usb/devices/ -maxdepth 1 -type l); do
if [[ -f $DIR/idVendor && -f $DIR/idProduct &&
$(cat $DIR/idVendor) == $VENDOR && $(cat $DIR/idProduct) == $PRODUCT ]]; then
echo 0 > $DIR/authorized
sleep 0.5
echo 1 > $DIR/authorized
fi
done
建立後,先在「任務排程表」對它按「執行」手動測試一次,確認 usbshare 有正常掛載出現,再進行下一步。
排定執行時間:掛載在備份之前
- 先觀察一次完整備份需要多久,作為安排時間的依據。
- 在任務排程表把掛載腳本排在 Hyper Backup 排程之前數分鐘(預留裝置就緒的時間)。
- 確保「掛載 → 備份 → 自動卸載」能在下一輪掛載前完成,避免時間重疊。例如:掛載 02:00、備份 02:10,備份約需 30 分鐘,則下一輪安排在隔天即可。
03注意事項
先手動測試腳本。VID/PID 與 /sys/bus/usb/devices 路徑會因機型與 DSM 版本而異,套用到排程前,務必先手動執行確認能正確掛載。
usbshare 編號可能不同。依 USB 插入的埠,共用資料夾可能是 usbshare、usbshare2 等;請以實際掛載出的名稱為準,並對應 Hyper Backup 的目的地。
排程不要重疊。掛載腳本一定要早於備份;整個循環須在下一次掛載前跑完,否則可能在 USB 未就緒時啟動備份而失敗。
定期驗證可還原。離線備份的價值在於「真的能還原」。建議定期用 Hyper Backup 做一次還原測試,確認備份完整可用。
