前言
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 | 客户端 |
配置服务端
- 安装相关包
yum install -y rsync xinetd
- 编辑服务配置文件:
/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
}
- 编辑
/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
- 创建用户密码文件
/etc/rsync.pass
。冒号前面是rsync认证用户,不是系统用户。冒号后面是密码
echo "rsync:123456" > /etc/rsync.pass
- 修改权限
chown root:root /etc/rsync.pass
chmod 600 /etc/rsync.pass
- 编辑接入信息文件
/etc/rsyncd.motd
Welcome to use the rsync services!
- 启动
systemctl restart xinetd
systemctl restart rsyncd
配置客户端
- 安装rsync
yum install -y rsync
- 创建配置文件,不需要写内容
touch /etc/rsyncd.conf
- 创建密码文件
echo "123456" > /etc/rsync.pass
chmod 600 /etc/rsync.pass
- 传输测试。将服务端的
/home/tmp
目录同步到本地当前目录。
rsync -avP [email protected]::tmptest . --password-file=/etc/rsync.pass
如果服务端的read_only
非yes,则可以从客户端传输文件到服务端
rsync -avP test.md [email protected]::tmptest --password-file=/etc/rsync.pass
补充
- 服务端需要关闭selinux,否则可能会出现类似以下的报错
rsync: link_stat "test.txt" (in tmptest) failed: Permission denied (13)
标签:rsync,服务,pass,etc,rsyncd,客户端,服务端,搭建
From: https://www.cnblogs.com/XY-Heruo/p/17333027.html