Linux rsync 配置详解
rsync 是一款高效、灵活的文件同步工具,支持本地与远程之间的数据备份、镜像和传输,其增量同步特性使其在数据备份和服务器维护中广泛应用,本文将详细介绍 Linux 环境下 rsync 的配置步骤、常见参数及高级应用。

安装与基础检查
在开始配置前,需确保系统中已安装 rsync,以 Debian/Ubuntu 为例,可通过以下命令安装:
sudo apt update && sudo apt install rsync -y
安装后,使用 rsync --version 验证版本信息,对于远程同步,需确保目标主机已启用 SSH 服务(默认 22 端口)。
基础同步命令
rsync 的核心语法为:
rsync [选项] 源路径 目标路径
常用参数包括:

-a:归档模式,保留权限、时间戳等属性-v:输出详细过程-z:压缩传输数据--delete:删除目标中多余文件(严格同步)-e:指定远程 shell(如 SSH)
示例:
# 本地同步目录 rsync -avz /source/ /destination/ # 通过 SSH 远程同步 rsync -avz -e ssh /source/ user@remote:/destination/
配置文件优化
rsync 的全局配置文件位于 /etc/rsyncd.conf,需手动创建,典型配置如下:
uid = nobody # 运行用户 gid = nogroup # 运行组 use chroot = yes # 限制根目录 max connections = 10 # 最大连接数 pid file = /var/run/rsyncd.pid # PID 文件路径 [backup] # 模块名称 path = /data/backup # 同步路径 comment = Backup Directory # 模块描述 read only = false # 允许写入 list = yes # 允许列出模块 auth users = backup_user # 认证用户 secrets file = /etc/rsyncd.secrets # 密码文件
密码文件 /etc/rsyncd.secrets 需设置权限为 600,内容格式为 用户名:密码。
防火墙与 SELinux 设置
若使用防火墙(如 ufw),需开放 rsync 默认端口 873:

sudo ufw allow 873/tcp
对于 SELinux 环境,需调整策略以允许 rsync 访问目录:
sudo setsebool -P rsync_export_all_ro 1
计划任务自动化
通过 cron 定时执行 rsync 任务,每日凌晨 2 点同步数据:
crontab -e
0 2 * * * rsync -avz --delete /source/ user@remote:/destination/
常见问题与解决方案
| 问题现象 | 可能原因及解决方法 |
|---|---|
| 连接被拒绝 | 检查 SSH 服务状态及防火墙规则 |
| 权限不足 | 确认运行用户对目录有读写权限 |
| 同步速度慢 | 增加 --bwlimit 限速或调整压缩参数 |
| 密码文件错误 | 检查 secrets file 权限及内容格式 |
高级功能
- 排除文件:使用
--exclude参数跳过特定文件或目录rsync -avz --exclude="*.tmp" /source/ /destination/
- 带宽控制:通过
--bwlimit=KBPS限制传输速率 - 镜像模式:结合
--delete实现目标与源完全一致
rsync 的灵活性和高效性使其成为 Linux 环境下数据同步的首选工具,通过合理配置参数、优化系统设置及结合 cron 任务,可构建稳定可靠的备份方案,实际应用中,建议结合日志分析(如 --log-file)进一步排查问题,确保数据同步的准确性与安全性。



















