如果目標是“簡單、可靠、歷史檔案能直接開啟”,很適合讓 Ubuntu 主動拉取群暉共享資料夾,再用 rsnapshot 做本地快照。群暉只提供只讀資料,Ubuntu 負責定時、日誌、版本輪換和備份硬碟;群暉誤刪檔案後,也可以從昨天、上週或上月的目錄直接複製回來。
rsnapshot 基於 rsync 和硬連結工作。每個快照目錄看起來像一份完整檔案副本,但未變化的檔案不會反覆佔用磁碟空間。照片、影片、PDF、DOCX 等仍是普通檔案,不依賴專用恢復軟體或備份資料庫。
推薦架構
|
|
這不是“群暉把檔案推送到 Ubuntu”的方案。Ubuntu 對群暉進行只讀訪問,群暉無需儲存 Ubuntu 備份盤的寫入密碼。這個許可權隔離通常更穩妥:群暉被誤操作、勒索軟體影響或某個套件賬號被濫用時,攻擊面不直接延伸到 Ubuntu 的歷史快照。該判斷基於許可權隔離,而不是替代離線盤、異地副本或恢復演練。
適用範圍和邊界
這套方式尤其適合:
- 照片、影片、文件、專案資料等普通共享資料夾;
- 希望保留多個時間點,又不想學習專用恢復工具;
- Ubuntu 上已有一塊專用備份硬碟;
- 只想挑選幾個共享資料夾,而不是整機映象。
它主要備份檔案本身,不等同於完整恢復 DSM、套件配置、資料庫服務狀態或所有系統級後設資料。需要完整災難恢復時,仍應保留 Hyper Backup、應用匯出、資料庫備份或其他針對性方案。
在群暉端建立只讀備份賬戶
先在 DSM 建立一個專用賬號,例如 backup-reader:
- 只授予需要備份的共享資料夾讀取許可權;
- 不授予管理許可權、寫入許可權和不必要的應用許可權;
- 使用獨立的高強度密碼;
- 僅允許 Ubuntu 的固定 IP 訪問相關 SMB/NFS 服務。
不要直接複用日常管理員賬戶。這樣即使 Ubuntu 上用於掛載的憑據洩露,影響範圍也只限於被授權讀取的目錄。
Ubuntu 掛載群暉共享資料夾
推薦把各共享資料夾分別掛到固定目錄:
|
|
SMB 和 NFS 都可以。選擇一種你已在群暉開啟並熟悉的協議即可;對普通家庭或小團隊網路,SMB 較容易排查許可權,NFS 則更接近 Linux 的許可權模型。
SMB/CIFS 只讀掛載示例
先安裝工具並建立只允許 root 讀取的憑據檔案:
|
|
憑據檔案內容:
|
|
在 /etc/fstab 中加入示例。把群暉 IP、共享名稱替換為實際值:
|
|
測試掛載並確認目錄可讀:
|
|
ro 是關鍵選項。若 mount -a 報認證、協議版本或共享不存在,不要先配置 rsnapshot;先把單個掛載點讀通。
NFS 只讀掛載示例
若已在 DSM 啟用 NFS,並且共享資料夾已允許 Ubuntu 的 IP 以只讀方式掛載,可以使用:
|
|
NFS 匯出路徑因群暉共享名稱和卷而異,先在 DSM 的共享資料夾 NFS 許可權頁確認。確認可讀後,再將實際匯出路徑寫入 /etc/fstab。
準備 Ubuntu 備份硬碟
快照根目錄應位於 Ubuntu 的專用備份盤,例如:
|
|
優先使用 ext4、XFS 等 Linux 檔案系統。rsnapshot 依賴硬連結節省空間,因此不要把快照根目錄放在 FAT、exFAT 等不支援 Unix 硬連結的檔案系統上;也不要讓備份目錄跨不同檔案系統拆分。
建議先確認備份硬碟的掛載穩定:系統重啟後,/srv/backup/rsnapshot 必須仍然位於備份盤,而不是意外落到 Ubuntu 系統盤的空目錄中。
配置 rsnapshot
編輯 /etc/rsnapshot.conf。該配置檔案的“配置項”和“引數”通常要求使用 Tab 製表符 分隔,複製後若校驗失敗,優先檢查是否被編輯器替換成了空格。
下面是與本文目錄結構對應的核心配置:
|
|
含義如下:
| 配置 | 作用 |
|---|---|
snapshot_root |
儲存所有快照的根目錄 |
retain daily 7 |
保留 7 個日快照 |
retain weekly 4 |
保留 4 個周快照 |
retain monthly 12 |
保留 12 個月快照 |
backup |
把只讀掛載目錄備份到快照中的對應子目錄 |
先校驗配置,再手工跑一次日快照:
|
|
正常完成後,目錄大致如下:
|
|
daily.0 是最新一次成功快照。下一次執行後,舊快照向後輪換,超過 retain 數量的版本會被清理。
設定日、周、月定時任務
在確認手工快照正常後,建立 /etc/cron.d/rsnapshot:
|
|
示例內容如下:
|
|
建議把任務放在群暉較空閒的時段。第一次備份會複製全部檔案,耗時和磁碟佔用都最大;後續執行主要傳輸變化部分。
定時任務前應確保掛載已成功。可以在 rsnapshot 前增加一個簡單檢查,或透過 systemd 掛載依賴實現;最重要的是不要在 /mnt/synology/* 未掛載時把空目錄誤當成源目錄,導致產生“成功但內容為空”的快照。
如何確認硬連結確實節省空間
不要只看每個目錄顯示的邏輯大小。可以檢查同一個未變化檔案的 inode 和連結數:
|
|
若檔案未變化,通常會看到相同 inode,且連結數大於 1。檢視備份盤真實佔用則使用:
|
|
恢復檔案的方法
恢復不需要 rsnapshot 命令。定位到合適的日期目錄,直接複製目標檔案即可:
|
|
恢復到群暉前,建議先複製到臨時目錄或更改檔名確認內容,避免覆蓋仍在使用的新版本。若要恢復整個資料夾,也應先確認目標空間和覆蓋範圍。
常見問題
rsnapshot 顯示成功,但快照目錄為空
首先檢查源掛載點是否真的掛載:
|
|
單純存在 /mnt/synology/photo 目錄不代表網路共享已掛載。應停止定時任務,刪除這次無效快照後,先修復 SMB/NFS 連通性再重跑。
配置檢查提示語法錯誤
執行:
|
|
重點檢查 snapshot_root 是否以 / 結尾、backup 規則是否有源路徑和目標子目錄,以及配置項之間是否使用了 Tab。不要在未透過 configtest 時直接加入 cron。
快照佔用突然很大
先看是否有大量檔案被重新命名、移動、重新編碼或修改時間/許可權導致 rsync 重新複製。硬連結只能複用內容和屬性都未變化的歷史檔案;首次備份、批次整理照片庫或應用匯出目錄頻繁變化時,佔用增長是正常現象。
能否直接備份整個群暉
可以技術上掛載更多共享資料夾,但不建議把系統目錄、套件內部目錄和所有卷無差別加入。優先從照片、文件、工作檔案等使用者資料開始,確認恢復流程後再逐步擴充套件;資料庫和應用配置應按各自的匯出或備份機制單獨處理。
小結
Ubuntu 主動拉取 + rsnapshot 的流程很清楚:群暉提供只讀共享,Ubuntu 將其掛載到 /mnt/synology/,rsnapshot 再寫入專用備份盤的 daily、weekly、monthly 快照。歷史版本是可直接瀏覽的普通檔案,恢復就是複製檔案;同時,群暉不需要持有 Ubuntu 備份盤的寫入許可權。這是一套很適合長期儲存照片、文件和工作檔案的實用方案。