参考:https://www.linuxidc.com/Linux/2015-06/119368.htm
https://blog.csdn.net/wssxy/article/details/6256741
一. 环境
Centos 6.9
server IP:192.168.1.100 client IP: 192.168.1.200
二.安装
yum install -y rsync xinetd
setenforce 0
或者
echo "SELINUX=disabled" >/etc/selinux/config (需要重启才能生效)
三.配置
vi /etc/rsyncd.conf
rsyncd.conf是一个空白文件,将以下内容复制进这个文件,并根据需要做相应修改。
uid=root #以指定的 UID 传输文件
gid=root #以指定的 GID 传输文件
#hosts allow=10.50.53.100 #允许指定主机访问
#hosts deny=0.0.0.0/32 #阻止指定主机访问
use chroot=yes
max connections=10 #允许的最大连接数
pid file=/var/run/rsyncd.pid #指定pid文件路径
lock file=/var/run/rsync.lock #指定进程锁文件
log file=/var/log/rsyncd.log #指定日志路径
timeout=600 #连接超时时间
port=873 #指定tcp端口
[backup]
path=/data
comment=rsync files
read only=no
list=yes
auth users=chicken00
secrets file=/etc/.rsyncd.secrets
#设置server端的用户名和密码,用户跟配置文件指定相同(auth users)
$ echo "chicken00:chicken00" >/etc/.rsyncd.secrets
#设置client端的密码,密码需要和server设置的一样,client端不需要设置用户名,否则会报错。
echo "chicken00" >/etc/.rsyncd.secrets
#设定文件的权限为600
chmod 600 /etc/.rsyncd.secrets
三.启动
#设为开机启动
chkconfig rsync on
#查看开机启动
$ chkconfig --list rsync
rsync on
#rsync 守护进程管理工具xinetd配置中的内容
$ cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
disable = no
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
#启动服务
/etc/init.d/xinetd start
四. client端同步测试
#client端测试准备
echo "chicken00" >/etc/.rsyncd.secrets
chmod 600 /etc/.rsyncd.secrets
echo 'hello rsync!!' >hello.txt
#上传文件
rsync -vzrtopg --delete --progress hello.txt chicken00@192.168.19.100::backup --password-file=/etc/.rsyncd.secrets
#下载文件
将文件同步至指定文件夹
rsync -vzrtopg --delete --progress chicken00@10.7.31.254::backup $(pwd)/tftp --password-file=/etc/.rsyncd.secrets
将server端文件下载至一个以同步时间命名的文件夹
rsync -vzrtopg --delete --progress chicken00@192.168.19.128::backup $(pwd)/backup-$(date +%Y-%m-%d) --password-file=/etc/.rsyncd.secrets
五.疑难杂症各种报错
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1296) [receiver=2.6.8]
原因及解决办法:
SELinux;
setsebool -P rsync_disable_trans on
@ERROR: auth failed on module GacErrLog
rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]
原因:
rsynd里面配置passwd是
username:password 这样的格式
客户端使用的时候,不能用这种格式,文件里面只能有password
解决方法:
1. 文件内容修改
2. rsync -av --password-file <(echo PASSWORD) src dest