CentOS 6.5 作为一款经典的 Linux 发行版,在企业环境中仍有广泛应用,rsync 是一款高效的文件同步和备份工具,它通过增量传输算法,仅需同步文件的不同部分,从而大大减少了数据传输量,尤其适合大文件和频繁同步的场景,本文将详细介绍在 CentOS 6.5 系统上安装、配置和使用 rsync 的全过程,帮助用户快速掌握这一实用工具。

rsync 简介
rsync(Remote Sync)是一款开源的快速增量文件复制工具,支持本地复制、远程复制和守护进程模式,其主要特点包括:
- 增量同步:只传输文件变化的部分,节省带宽和时间。
- 压缩传输:可在传输前对文件进行压缩,进一步提高传输效率。
- 权限保留:支持同步文件权限、时间戳、软硬链接等属性。
- 排除功能:可灵活排除不需要同步的文件或目录。
- 安全机制:结合 SSH 可实现安全的远程文件传输。
安装 rsync
在 CentOS 6.5 系统中,rsync 通常包含在默认软件源中,可以通过以下步骤进行安装:
检查是否已安装
检查系统是否已安装 rsync:
rsync --version
如果已安装,会显示 rsync 的版本信息;否则,提示“command not found”。
使用 yum 安装
如果未安装,使用 yum 包管理器进行安装:
sudo yum install rsync -y
此命令会自动从默认软件源下载并安装 rsync 及其依赖包,安装完成后,可再次运行 rsync --version 确认安装成功。
验证安装
安装完成后,可以通过以下命令查看 rsync 的安装路径和基本信息:
which rsync ls -l /usr/bin/rsync
rsync 的可执行文件位于 /usr/bin/rsync。
配置 rsync 服务器
rsync 支持两种工作模式:远程 Shell 模式(如通过 SSH)和 守护进程模式(C/S 模式),守护进程模式更适合需要频繁、自动化同步的场景,本节重点介绍该模式的配置。

创建配置文件
rsync 的主配置文件为 /etc/rsyncd.conf,默认可能不存在,需手动创建:
sudo touch /etc/rsyncd.conf sudo chmod 644 /etc/rsyncd.conf
编辑配置文件
使用 vi 或 nano 编辑器打开配置文件:
sudo vi /etc/rsyncd.conf
以下是一个示例配置文件内容:
# 全局设置
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
# 模块设置(定义同步目录)
[backup]
path = /data/backup
comment = Backup Directory
read only = no
list = yes
auth users = backupuser
secrets file = /etc/rsyncd.passwd
hosts allow = 192.168.1.0/24
hosts deny = 0.0.0.0/0
参数说明:
uid/gid:运行 rsync 进程的用户和组,通常使用nobody提高安全性。use chroot:是否将 chroot 限制在指定目录,建议设为no以避免权限问题。max connections:最大并发连接数。path:需要同步的目录路径。read only:是否为只读,no表示允许写入。auth users:认证用户名,多个用户用逗号分隔。secrets file:存储用户密码的文件路径。hosts allow/hosts deny:允许或拒绝访问的 IP 地址段。
创建认证用户和密码文件
根据配置文件中的 auth users 和 secrets file,创建密码文件:
sudo touch /etc/rsyncd.passwd sudo chmod 600 /etc/rsyncd.passwd
编辑密码文件,格式为 username:password:
sudo vi /etc/rsyncd.passwd ```:
backupuser:backuppass123
**注意**:密码文件权限必须为 `600`,否则 rsync 服务器会拒绝启动。
#### 4. 创建同步目录
根据配置文件中的 `path` 创建目录,并设置正确的权限:
```bash
sudo mkdir -p /data/backup
sudo chown -R nobody:nobody /data/backup
sudo chmod -R 755 /data/backup
启动 rsync 服务
通过以下命令启动 rsync 守护进程:
sudo rsync --daemon
为使服务开机自启,可将其添加到 rc.local 文件:

echo "rsync --daemon" | sudo tee -a /etc/rc.local sudo chmod +x /etc/rc.local
防火墙设置
CentOS 6.5 默认使用 iptables 防火墙,需开放 rsync 默认端口(873):
sudo iptables -I INPUT -p tcp --dport 873 -j ACCEPT sudo service iptables save sudo service iptables restart
使用 rsync 进行同步
推送文件(本地到远程)
将本地文件推送到 rsync 服务器:
rsync -avz /local/path/ backupuser@remote_server::backup /remote/path/
参数说明:
-a:归档模式,保留权限、时间戳等属性。-v:显示详细过程。-z:压缩传输数据。--password-file:通过密码文件自动认证(避免交互式输入):rsync -avz --password-file=/etc/rsyncd.passwd /local/path/ backupuser@remote_server::backup
拉取文件(远程到本地)
从 rsync 服务器拉取文件到本地:
rsync -avz backupuser@remote_server::backup /local/path/
排除文件
在同步时排除特定文件或目录:
rsync -avz --exclude=*.log /local/path/ backupuser@remote_server::backup
常见问题排查
- 权限错误:检查
/etc/rsyncd.passwd权限是否为600,同步目录权限是否正确。 - 连接被拒绝:确认防火墙是否开放 873 端口,
hosts allow配置是否正确。 - 认证失败:检查密码文件中的用户名和密码是否与配置一致。
相关问答 FAQs
问题 1:如何修改 rsync 服务的默认端口?
答:在 /etc/rsyncd.conf 配置文件中添加 port = 自定义端口号,然后重启 rsync 服务:sudo pkill rsync && sudo rsync --daemon,同时需在防火墙中开放自定义端口。
问题 2:如何实现 rsync 的定时自动同步?
答:可使用 crontab 设置定时任务,每天凌晨 2 点同步数据:
0 2 * * * /usr/bin/rsync -avz --password-file=/etc/rsyncd.passwd /local/path/ backupuser@remote_server::backup
执行 crontab -e 添加上述任务,保存后即可生效。