QCMS 智慧中枢

Linux 下 rsync daemon 完整部署教程(从安装到同步)

分类:技术分享 时间:2025-12-05 阅读数: 67

Linux 下 rsync daemon 完整部署教程(从安装到同步)

本文记录如何在 Linux 系统上以 daemon 模式(rsync://) 部署 rsync 服务并使用账号认证同步文件。账号:user_test,密码:user_password,备份路径:/var/www_backup

 

一、安装 rsync

1、登录远程服务器(需具备root或sudo权限)

ssh root@8.8.8.8

 

2、安装rsync(根据发行版选择命令)

Debian/Ubuntu系

apt update
apt install -y rsync

CentOS/RHEL系

sudo yum update
sudo yum install -y rsync

Alpine Linux

sudo apk add rsync

 

3、验证安装

rsync --version  # 应显示版本号(如rsync 3.2.7)

 

二、创建系统用户(用于 rsync 进程的文件读写)

# 创建用户(不创建 home,不允许登录)
useradd user_test -M -s /usr/sbin/nologin
# -M不创建家目录,-s禁止登录, user_test 是账号
# 如果系统没有 /usr/sbin/nologin,可用 /sbin/nologin 或 /bin/false

 

三、创建并设置备份目录

mkdir -p /var/www_backup
chown -R user_test:user_test /var/www_backup
chmod -R 755 /var/www_backup

说明:daemon 会以 uid/gid 在配置中指定的用户身份写入文件,故需确保目录属主/权限正确。

 

四、创建服务端 secrets 文件(存放账号:密码)

echo "user_test:user_password" > /etc/rsync.secrets
chmod 600 /etc/rsync.secrets

注意:该文件必须 600,且每行为 user:password 格式。

 

五、编辑并保存 /etc/rsyncd.conf(示例配置)

# 全局配置
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
  •  

六、启动并启用 rsync daemon

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::

 

九、客户端同步示例(daemon 模式)

把本地目录 /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

 

十、常见问题与排查

  • @ERROR: auth failed:检查 /etc/rsync.secrets 是否存在且权限为 600;确认 auth users 与 secrets 中用户名一致;client 的 password-file 是否只包含密码。
  • no secrets file:通常是 rsyncd.conf 未正确加载(比如配置语法错误),或守护进程未重启读取新配置。检查 /var/log/rsyncd.log
  • Badly formed boolean:配置文件中不要在同一行注释 false # 注释,将注释放到独立行。
  • mkdir ... failed: No such file or directory:daemon 模式不会自动创建多级父目录,需先在服务端创建父目录或将目标同步到已有目录。
  • failed to lock pid file:可能有多个 rsync 进程,重启服务或终止多余进程后再启动。

 

十一、日志查看命令

tail -f /var/log/rsyncd.log
# 或查看最近 50 行
tail -n 50 /var/log/rsyncd.log

 

十二、性能优化建议(daemon 模式优先考虑)

  • 网络带宽是首要瓶颈,用 iperf3 测试两端带宽。
  • 若传输大量小文件,建议先在客户端打包(tar)再传输,传完再在服务端解包。
  • 并行上传:将文件列表拆分,多进程并行运行多条 rsync(使用 --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.password

 

十四、扩展建议(安全性)

  • 若在公网使用,请限制 hosts allow 为可信 IP;或配合防火墙(iptables/nftables)仅允许特定 IP 访问 873 端口。
  • 对高安全需求场景,考虑使用 rsync over SSH(安全但可能稍慢),或在专用网络/VPN 下使用 rsync daemon。
  • 定期更换密码并妥善保管 /etc/rsync.secrets

以上即为从安装到最终同步命令的完整 rsync daemon 部署记录,适合直接保存到后台文章或运维日志。需要我把这篇转成 Markdown、PDF,或生成多模块(多个 [module])的配置模板吗?

上一篇: 没有了
下一篇: Ubuntu 安装 Docker 最全教程(最新)
热门文章
acme.sh 自动部署与自动续签 SSL 证书完整教程 Linux 下 rsync daemon 完整部署教程(从安装到同步) acme.sh 证书在小程序无法访问的解决方案(ERR_SSL_VERSION_OR_CIPHER_MISMATCH) Ubuntu 安装 Docker 最全教程(最新) 常用 Docker 命令与实用案例整理(镜像管理、容器管理、部署示例)

相关模板推荐

域名授权查询

输入您的网址查询是否授权