99 lines
3.2 KiB
Markdown
99 lines
3.2 KiB
Markdown
---
|
||
title: "rsync"
|
||
type: entity
|
||
tags: [backup, linux, sync, incremental]
|
||
date: 2026-04-26
|
||
---
|
||
|
||
# rsync
|
||
|
||
## Overview
|
||
**rsync**(Remote Sync)是一款开源增量文件同步工具,广泛用于 Linux/Unix 系统间的备份和同步操作。它通过高效差异算法,仅传输源文件和目标文件之间的差异部分,实现带宽和时间的高效利用。
|
||
|
||
## Key Characteristics
|
||
| 特性 | 说明 |
|
||
|------|------|
|
||
| **增量同步** | 仅传输变更部分,支持 `-a`(归档)、`-v`(详细)、`-z`(压缩传输) |
|
||
| **协议支持** | 本地、SSH、Rsync Daemon、NFS、Samba |
|
||
| **权限保留** | `-a` 保留文件所有权、时间戳、权限等属性 |
|
||
| **Dry Run** | `--dry-run` / `-n` 预览同步效果,不实际执行 |
|
||
| **删除选项** | `--delete` 同步目标端多余文件(谨慎使用) |
|
||
|
||
## Common Usage Patterns
|
||
|
||
### 1. 本地到 NFS 挂载点(Home Server 备份)
|
||
```bash
|
||
# 同步 /home/user/data 到 NAS 挂载点
|
||
rsync -avz --delete /home/user/data/ /mnt/nas_backup/user_data/
|
||
```
|
||
|
||
### 2. 通过 SSH 远程同步
|
||
```bash
|
||
# 远程备份(需 SSH key 免密)
|
||
rsync -avz -e ssh /local/path/ user@remote:/remote/path/
|
||
```
|
||
|
||
### 3. 自动化备份脚本(推荐)
|
||
```bash
|
||
#!/bin/bash
|
||
# /usr/local/bin/rsync_backup.sh
|
||
|
||
SOURCE_DIR="/home/ubuntu/data"
|
||
TARGET_DIR="/mnt/nas_backup"
|
||
LOG_FILE="/var/log/rsync_backup.log"
|
||
|
||
# 挂载点安全检查
|
||
if ! mountpoint -q $TARGET_DIR; then
|
||
echo "$(date) 错误:NAS 未挂载,备份任务取消!" >> $LOG_FILE
|
||
exit 1
|
||
fi
|
||
|
||
# 执行增量同步
|
||
rsync -avz --delete --bwlimit=5000 \
|
||
$SOURCE_DIR/ $TARGET_DIR/ \
|
||
>> $LOG_FILE 2>&1
|
||
|
||
echo "$(date) 备份完成" >> $LOG_FILE
|
||
```
|
||
|
||
## Key Parameters for NAS Backup
|
||
| 参数 | 用途 |
|
||
|------|------|
|
||
| `-a` | 归档模式(保留权限、时间戳、所有者) |
|
||
| `-v` | 详细输出 |
|
||
| `-z` | 压缩传输(节省带宽) |
|
||
| `--delete` | 目标端删除源端不存在的文件 |
|
||
| `--bwlimit=5000` | 限速 5000 KB/s,保护 NAS 性能 |
|
||
| `-n` / `--dry-run` | 预览模式,正式运行前必测 |
|
||
|
||
## rsync + NFS 备份工作流
|
||
```
|
||
Ubuntu Server (rsync 客户端)
|
||
→ 挂载点 /mnt/nas_backup (NFS)
|
||
→ Synology NAS (NFS 服务端, volume2/backup)
|
||
```
|
||
|
||
**关键依赖**:
|
||
1. Synology DSM NFS 权限已配置(Squash=admin)
|
||
2. Ubuntu 已通过 /etc/fstab 永久挂载 NFS
|
||
3. 挂载点检查通过后再执行 rsync
|
||
|
||
## Related Concepts
|
||
- [[永久挂载]] — rsync 备份目标端必须先完成 NFS 永久挂载
|
||
- [[挂载点检查]] — rsync 备份脚本的安全前置检查
|
||
- [[增量备份]] — rsync 是增量备份的核心工具
|
||
- [[NFS]] — NFS 是 rsync 备份到 NAS 的网络传输层
|
||
- [[Cron定时任务]] — rsync 通常通过 Cron 实现定时自动执行
|
||
|
||
## Related Sources
|
||
- [[ubuntu服务器通过rsync实现日常增量备份]] — rsync + Cron + NFS 完整备份方案
|
||
- [[如何在ubuntu-server上通过nfs挂载synology-nas上的共享文件夹]] — NFS 挂载配置
|
||
|
||
## Related Entities
|
||
- [[Ubuntu Server]] — rsync 客户端运行环境
|
||
- [[Synology-NAS]] — rsync 备份的目标 NAS 存储
|
||
|
||
## References
|
||
- rsync 官网: https://rsync.samba.org/
|
||
- man rsync (本地查看)
|