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