本文记录如何在 Linux 系统上以 daemon 模式(rsync://) 部署 rsync 服务并使用账号认证同步文件。账号:user_test,密码:user_password,备份路径:/var/www_backup。
1、登录远程服务器(需具备root或sudo权限)
ssh root@8.8.8.8
2、安装rsync(根据发行版选择命令)
Debian/Ubuntu系:
apt update
apt install -y rsyncCentOS/RHEL系:
sudo yum update
sudo yum install -y rsyncAlpine Linux:
sudo apk add rsync
3、验证安装:
rsync --version # 应显示版本号(如rsync 3.2.7)# 创建用户(不创建 home,不允许登录)
useradd user_test -M -s /usr/sbin/nologin
# -M不创建家目录,-s禁止登录, user_test 是账号
# 如果系统没有 /usr/sbin/nologin,可用 /sbin/nologin 或 /bin/falsemkdir -p /var/www_backup
chown -R user_test:user_test /var/www_backup
chmod -R 755 /var/www_backup说明:daemon 会以 uid/gid 在配置中指定的用户身份写入文件,故需确保目录属主/权限正确。
echo "user_test:user_password" > /etc/rsync.secrets
chmod 600 /etc/rsync.secrets注意:该文件必须 600,且每行为 user:password 格式。
# 全局配置
uid = user_test
gid = user_test
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
# 模块配置(模块名:backup_module)
[backup_module]
path = /var/www_backup
read only = false
list = false
hosts allow = 192.168.1.0/24, 127.0.0.1, ::1
auth users = user_test
secrets file = /etc/rsync.secrets重要说明:
true/false 添加注释(rsync 配置对注释敏感)。# 注释 开头。(本人就被注释坑过,网上复制的配置,在配置后面都写了注释,我没有删除,导致死活有问题,浪费了很多时间排查这个问题!)hosts allow 用逗号分隔 IP 或子网;测试阶段可写 127.0.0.1。systemctl start rsyncd # 启动服务
systemctl enable rsyncd # 设置开机自启
netstat -lntup | grep rsync # 检查端口873是否监听
# 客户端只需密码(仅包含密码本身)
echo "user_password" > /etc/rsync.password
chmod 600 /etc/rsync.password注意:客户端的密码文件 只能包含密码,不能包含 user:password。
# 列出远端模块(应能看到 backup_module)
rsync user_test@你的服务器IP::
# 或(本机测试)
rsync user_test@127.0.0.1::把本地目录 /var/wwwroot/site/upload/ 同步到服务器的 /var/www_backup/site/upload/:
rsync -avzP /var/wwwroot/site/upload/ \
user_test@服务器IP::backup_module/site/upload/ \
--password-file=/etc/rsync.password说明:-a:归档(保持权限、时间等);-v:详细;-z:压缩;-P:显示进度并保留部分传输。
到这边配置就已经完成了,如果没有问题就可以正常使用了!
PS提一句:服务端的/etc/rsync.secrets 包含账号和密码,客户端的/etc/rsync.password 只有密码,千万别搞错这2个东西了,我也在这边吃过亏
mkdir -p /var/www_backup/site/upload
chown -R user_test:user_test /var/www_backup
chmod -R 755 /var/www_backup/etc/rsync.secrets 是否存在且权限为 600;确认 auth users 与 secrets 中用户名一致;client 的 password-file 是否只包含密码。rsyncd.conf 未正确加载(比如配置语法错误),或守护进程未重启读取新配置。检查 /var/log/rsyncd.log。false # 注释,将注释放到独立行。tail -f /var/log/rsyncd.log
# 或查看最近 50 行
tail -n 50 /var/log/rsyncd.logiperf3 测试两端带宽。--files-from 或分目录并行)。-z:已压缩文件(图片、zip)去掉压缩参数可节省 CPU。--partial-dir 保存中间文件,避免中断重传全部重来。# 1. 查看守护进程
ps -ef | grep rsync
# 2. 检查配置语法错误并查看日志
tail -n 50 /var/log/rsyncd.log
# 3. 测试模块可见性(应返回模块名)
rsync user_test@服务器IP::
# 4. 做一次试运行(不实际写入,仅显示将会传的文件)
rsync -avn /local/path/ user_test@服务器IP::backup_module/ --password-file=/etc/rsync.passwordhosts allow 为可信 IP;或配合防火墙(iptables/nftables)仅允许特定 IP 访问 873 端口。/etc/rsync.secrets。以上即为从安装到最终同步命令的完整 rsync daemon 部署记录,适合直接保存到后台文章或运维日志。需要我把这篇转成 Markdown、PDF,或生成多模块(多个 [module])的配置模板吗?
输入您的网址查询是否授权