一、环境准备
服务器:192.168.200.141 centos6.6
客户端:192.168.200.142 centos6.6
二、安装
1.安装基本包
yum install -y rsync xinetd
2.关掉iptables和selinux
service iptables stop(本实验的话其实只需要清掉iptables的规则即可:iptables -F)
setenforce 0(这是临时生效,重启后没用,要想永久生效的话,echo "SELINUX=disabled" >/etc/selinux/config)
三、rsync服务器端配置
1.如果服务器上rsync的负载比较小的话,就用xinetd的运行方式,此时需要打开xinetd中rsync服务
vim /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 = yes
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
只需要将disable = yes改成disable = no即可开启xinetd中的rsync服务
CentOS默认是以xinetd的模式运行rsync的,配置文件在/etc/xinetd.d/rsync中。
2.如果服务器上rsync的负载比较大的话,就使用独立运行的模式。上述的/etc/xinetd.d/rsync内容则不需要改动。
3.前面两种rsync启动方式只能选一种,这里我选取第二种,即独立启动的方式。
rsync的配置文件是/etc/rsyncd.conf,这个文件默认是没有的,需要自己手动创建。
vim /etc/rsyncd.conf
uid=root #以指定的 UID 传输文件
gid=root #以指定的 GID 传输文件
#hosts allow=10.50.53.100 #允许指定主机访问
#hosts deny=0.0.0.0/32 #阻止指定主机访问
use chroot=no
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=/backup/ #同步的本地目录(此目录需要创建)
read only=false
list=false
auth users=rsync #授权用户
secrets file=/etc/rsync.password #用户和密码列表(此文件需要创建)
uid=0
gid=0
上面最后两行开始我没有加,然后后面客户端同步时报错,所以我根据错误提示加了两行。网友们如果不加也可以的话,就不加吧。
4.写好rsync的配置文件之后,就要创建要同步的本地目录/backup,并根据需要授权rsync服务的用户读写/backup目录
mkdir -p /backup
5.创建账号以及密码文件
echo "rsync:redhat" >/etc/rsync.password
chmod 600 /etc/rsync.password
6.启动rsync服务
(1)如果前面是选用xinetd启动模式的话:
service xinetd restart
chkconfig rsync on
查看下873端口开了没
ss -ntulp|grep 87
(2)如果前面是以独立方式运行rsync的话启动rsync的话:
rsync --daemon
echo "/usr/bin/rsync --daemon" >>/etc/rc.local
ss -ntulp|grep 87
四、rsync客户端配置
1.安装rsync包
yum install -y rsync
2.创建密码文件并授权
echo "redhat" >/etc/rsync.password
chmod 600 /etc/rsync.password
3.关掉防火墙以及selinux
service iptables stop(或者不关闭防火墙,直接清掉防火墙中的规则也可以,iptbles -F)
setenforce 0(这是临时生效,重启后没用,要想永久生效的话,echo "SELINUX=disabled" >/etc/selinux/config)
五、客户端测试
本地推送:将本地的文件同步到备份服务器中去(192.168.200.141)
rsync -avz /tmp [email protected]::backup/ --password-file=/etc/rsync.password
慎重使用--delete参数
例:
mkdir empty
rsync -avz --delete empty/ [email protected]::backup/ --password-file=/etc/rsync.password
此时远程服务器的/backup会被清空,这是因为本地的empty目录中是空的,而--delete参数的意思是如果本地empty中有文件,远程服务器的/backup目录中的文件要与客户端empty保持文件一致,远程服务器的/backup中有的而客户端empty没有的,则服务器端会删掉客户端没有的内容。如果推送的本地目录是空的,则远程服务器为了保持数据一致backup目录也会为空。