Files
nexus/wiki/sources/ubuntu服务器通过rsync实现日常增量备份.md
2026-04-22 04:03:04 +08:00

57 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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进程应优先使用SIGTERMkillall rsync而非SIGKILLkillall -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点)