--- title: "Ubuntu服务器通过rsync实现日常增量备份" type: source tags: [ubuntu, rsync, backup, nas] date: 2026-04-14 --- ## Source File - [[raw/Home Office/Ubuntu服务器通过rsync实现日常增量备份.md]] ## Summary (用中文描述) - 核心主题:Ubuntu服务器通过rsync实现日常增量备份到NAS的完整解决方案 - 问题域:数据备份、网络存储挂载、系统容灾恢复 - 方法/机制:rsync自动化脚本 + Cron定时任务 + /etc/fstab永久挂载 + NFS网络文件系统 - 结论/价值:rsync优势在于不关机运行、仅传输变化文件,是构建"工作室级"数据保护体系的最后一步;结合Clonezilla整机镜像实现完整灾备策略 ## Key Claims (用中文描述) - rsync通过SSH或不通过SSH方式增量同步数据,仅传输变化的文件,大幅降低带宽和时间成本 - NFS永久挂载必须写入/etc/fstab,并使用_netdev参数确保网络完全启动后才尝试挂载,避免开机卡死 - Docker卷数据备份建议先执行mysqldump导出SQL再rsync同步,直接复制二进制数据库文件可能导致恢复后无法启动 - rsync错误码0/23/24均视为成功(23=部分文件权限问题,24=源文件消失),这些在运行系统备份中属正常情况 - 停止rsync进程应优先使用SIGTERM(killall rsync)而非SIGKILL(killall -9 rsync),防止临时文件残留和数据损坏 ## Key Quotes > "rsync 的优势在于它可以**不关机**运行,并且只传输**变化过**的文件。" — rsync增量备份的核心价值 > "_netdev: **关键参数**。告诉系统这是一个网络设备,务必等到网络服务完全启动后再尝试挂载,防止开机过程因找不到网络而卡死。" — NFS挂载参数解析 > "rsync 返回 23 表示部分文件由于权限或消失未传输,这在备份正在运行的系统时常见。我们重点看是否大部分数据已同步。" — 错误码容错处理原则 ## Key Concepts - [[增量备份]]:通过rsync仅同步源端与目标端差异部分,实现高效的日常数据保护 - [[永久挂载]]:通过/etc/fstab配置实现NFS/Samba等网络存储的开机自动挂载 - [[挂载点检查]]:备份脚本执行前验证挂载点有效性,防止数据写入本地磁盘导致硬盘爆满 - [[Cron定时任务]]:通过crontab配置凌晨3点自动执行备份,实现无人值守运维 - [[进程管理]]:通过信号(SIGTERM/SIGKILL)控制rsync备份进程的优雅或强制终止 ## Key Entities - [[Docker卷]]:Docker容器持久化数据存储,默认路径/var/lib/docker/volumes,是TikTok业务数据备份的核心对象 - rsync_backup.sh:自动化备份脚本,含锁文件机制、挂载检查、日志记录、错误容错 ## Connections - [[增量备份]] ← part_of ← [[Disaster-Recovery]] - [[Docker卷]] ← backup_target ← [[增量备份]] - [[NFS]] ← storage_backend ← [[永久挂载]] - [[永久挂载]] ← requires ← [[挂载点检查]] ## Contradictions - 无已知冲突 ## Metadata - **Source type**: 运维实践笔记(个人经验总结) - **Prerequisites**: NAS已挂载、NFS服务已配置 - **Related practices**: Clonezilla整机镜像备份(时间点恢复的完整策略) - **Key scripts**: /usr/local/bin/rsync_backup.sh - **Schedule**: 0 3 * * * (每日凌晨3点)