--- title: "Ubuntu服务器通过rsync实现日常增量备份" type: source tags: [backup, nas, rsync, ubuntu] date: 2026-04-26 --- ## Source File - [[raw/Home Office/Ubuntu服务器通过rsync实现日常增量备份.md]] ## Summary(用中文描述) - 核心主题:使用 rsync 在 Ubuntu Server 上实现自动化增量备份,将 Docker 数据和配置文件同步到 NAS 存储 - 问题域:工作室级数据保护体系建设——在已完成 Clonezilla 全盘镜像备份的基础上,通过 rsync 实现不关机的日常增量同步 - 方法/机制: - rsync 增量同步(仅传输变化文件)+ Crontab 凌晨自动执行 - NFS 永久挂载通过 `/etc/fstab` 配置,配合 `_netdev` 参数确保网络就绪后再挂载 - 备份脚本内置锁文件机制(防止并发运行)、挂载点检查(防止写入本地磁盘) - Docker 卷备份(直接同步 `/var/lib/docker/volumes`)+ 数据库一致性建议(mysqldump 优先) - 结论/价值:形成"全盘镜像(Clonezilla)+ 日常增量(rsync)"双层数据保护体系,兼顾灾难恢复与实时数据安全 ## Key Claims(用中文描述) - rsync 可以在不关机的情况下运行,且只传输变化过的文件,适合作为日常增量备份工具 - NFS 永久挂载必须写入 `/etc/fstab`,并使用 `_netdev` 参数防止开机时因网络未就绪而卡死 - 备份脚本若不加挂载点检查,NAS 掉线时 rsync 会将数据写入本地挂载点目录,导致硬盘迅速爆满 - Docker 卷(Volumes)默认存储路径为 `/var/lib/docker/volumes`,是备份的核心数据 - 数据库类容器(MySQL)备份应先用 `mysqldump` 导出 SQL 文件再 rsync,避免二进制文件损坏 - rsync 返回码 23 或 24 表示部分文件因权限或消失未传输,这在运行中的系统上属于正常情况 - 使用 `killall`(SIGTERM)优雅停止 rsync 比 `kill -9`(SIGKILL)更安全,可防止临时文件残留 ## Key Quotes > "不要直接在命令行输入长命令,建议创建一个专门的脚本。" — 备份脚本管理最佳实践 > "`_netdev`:告诉系统这是一个网络设备,务必等到网络服务完全启动后再尝试挂载,防止开机过程因找不到网络而卡死。" — /etc/fstab NFS 挂载参数说明 > "rsync 返回 23 表示部分文件由于权限或消失未传输,这在备份正在运行的系统时常见。" — 错误码处理说明 ## Key Concepts - [[Rsync-Incremental-Backup]]:rsync 通过其 delta-transfer 算法,只发送源文件和目标文件之间的差异部分,实现高效的增量备份;常用参数 `-azR --delete`(归档、压缩、保持相对路径、删除目标端多余文件) - [[NFS-Permanent-Mount]]:NFS 挂载通过 `/etc/fstab` 实现永久化,关键参数包括 `timeo=900`(90秒超时)、`retrans=5`(5次重试)、`_netdev`(等待网络就绪);测试前必须用 `sudo mount -a` 验证,禁止直接重启 - [[Docker-Volume-Backup]]:Docker 卷默认存储在 `/var/lib/docker/volumes`,备份时对数据库容器应先用 `docker exec <容器> mysqldump` 导出再做 rsync,避免二进制文件损坏 - [[Fstab]]:Linux 文件系统表(/etc/fstab),用于定义开机自动挂载的设备和参数;修改后必须用 `mount -a` 测试,禁止直接重启 - [[Backup-Strategy]]:双层备份体系——Clonezilla 全盘镜像(应对硬盘彻底损坏)+ rsync 增量备份(应对日常文件丢失) ## Key Entities - [[Clonezilla]]:用于整机镜像备份的工具,与 rsync 形成互补(全量 vs 增量) - [[Synology-NAS]]:NAS 存储设备,提供 NFS 共享作为 rsync 备份目标 - [[Ubuntu-Server]]:运行 rsync 备份脚本的操作系统环境 - [[Docker]]:容器化平台,其 volumes 和配置文件是备份的核心数据 - [[NFS]]:网络文件系统协议,用于 Ubuntu Server 挂载 Synology NAS 共享目录 ## Connections - [[Clonezilla对Ubuntu Server进行全盘镜像备份]] ← backup_strategy ← [[Ubuntu服务器通过rsync实现日常增量备份]] - [[如何在Ubuntu Server上通过NFS挂载Synology NAS上的共享文件夹]] ← foundation ← [[Ubuntu服务器通过rsync实现日常增量备份]] - [[Docker]] ← backup_target ← [[Ubuntu服务器通过rsync实现日常增量备份]] - [[Synology-NAS]] ← backup_destination ← [[Ubuntu服务器通过rsync实现日常增量备份]] ## Contradictions - 无已知冲突