如果目标是“简单、可靠、历史文件能直接打开”,很适合让 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 备份盘的写入权限。这是一套很适合长期保存照片、文档和工作文件的实用方案。