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 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)
手机扫一扫
移动阅读更方便
你可能感兴趣的文章