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

57 lines
4.4 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: [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
- 无已知冲突