Auto-sync: 2026-04-26 20:02

This commit is contained in:
2026-04-26 20:02:45 +08:00
parent d42bc16120
commit b7d9d0f5d1
54 changed files with 3196 additions and 3021 deletions

View File

@@ -1,56 +1,56 @@
---
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点)
---
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
- 无已知冲突