搭建rsyncd服务

前言

rsync常用来做文件传输和同步。本文示例中客户端通过rsync同步服务端的/home/tmp目录到本地(不是将客户端的文件同步到服务端)。

环境信息

IP 系统版本 rsync版本 说明
192.168.0.10 CentOS 7.9 3.1.2 服务端
192.168.0.11 CentOS 7.9 3.1.2 客户端

配置服务端

  1. 安装相关包
yum install -y rsync xinetd
  1. 编辑服务配置文件:/etc/xinetd.d/rsync。一般不需要修改什么内容。
service rsync
{
disable = no
flags = IPv4
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
  1. 编辑 /etc/rsyncd.conf。因为是客户端同步服务端到本地,所以服务端开启只读。如果需要客户端同步本地到服务端,则read_only的值应该是false
uid = root
gid = root
use chroot = no
max connections = 4
strict modes = yes
port = 873

[tmptest]
path = /home/tmp/
ignore errors
read only = yes
list = no
secrets file = /etc/rsync.pass
hosts allow = 192.168.0.0/24
hosts deny = 0.0.0.0/0
pid file = /var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file = /var/log/rsyncd.log
  1. 创建用户密码文件 /etc/rsync.pass。冒号前面是rsync认证用户,不是系统用户。冒号后面是密码
echo "rsync:123456" > /etc/rsync.pass
  1. 修改权限
chown root:root /etc/rsync.pass
chmod 600 /etc/rsync.pass
  1. 编辑接入信息文件 /etc/rsyncd.motd
Welcome to use the rsync services!
  1. 启动
systemctl restart xinetd
systemctl restart rsyncd

配置客户端

  1. 安装rsync
yum install -y rsync
  1. 创建配置文件,不需要写内容
touch /etc/rsyncd.conf
  1. 创建密码文件
echo "123456" > /etc/rsync.pass
chmod 600 /etc/rsync.pass
  1. 传输测试。将服务端的/home/tmp目录同步到本地当前目录。
rsync -avP rsync@192.168.0.10::tmptest . --password-file=/etc/rsync.pass

如果服务端的read_only非yes,则可以从客户端传输文件到服务端

rsync -avP test.md rsync@192.168.0.10::tmptest --password-file=/etc/rsync.pass

补充

  • 服务端需要关闭selinux,否则可能会出现类似以下的报错
rsync: link_stat "test.txt" (in tmptest) failed: Permission denied (13)
posted @ 2023-04-19 13:37  花酒锄作田  阅读(124)  评论(0编辑  收藏  举报