Files
nexus/wiki/entities/rsync.md
2026-04-27 16:26:34 +08:00

99 lines
3.2 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: "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 (本地查看)