一、rsync简介
rsync是用于数据备份共享以及增量同步的工具,它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令
二、准备环境
10.0.0.5 web服务器2C2G
10.0.0.6 NFS服务器2C2G
10.0.0.7 BACKUP服务器2C2G

如图所示
三、配置实验
在NFS服务器(10.0.0.6)配置目的是安装NFS服务
[root@juju ~]# yum -y install nfs-utils
[root@juju ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666))
[root@juju ~]# groupadd -g666 www
[root@juju ~]# useradd -u666 -g666 -M -s /sbin/nologin www
[root@juju ~]# mkdir /data
[root@juju ~]# chown www.www /data
[root@juju ~]# systemctl start nfs
[root@juju ~]# systemctl enable nfs
[root@juju ~]# cat /var/lib/nfs/etab/data
在web服务器(10.0.0.5)上面安装nfs测试验证NFS上可不可以挂载目录
[root@juju ~]# yum -y install nfs-utils
[root@juju ~]# showmount -e 172.16.1.6
[root@juju ~]# mkdir /img
[root@juju ~]# mount -t nfs 172.16.1.6:/data /img
[root@juju ~]# df -h
[root@juju ~]# touch /img/1.txt
在backup服务器上面(10.0.0.7)安装rsync为了下一步lsync同步目录做准备
[root@juju ~]# yum -y install rsync
[root@juju ~]# vim /etc/rsyncd.conf
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup
[nfs]
path = /nfs
[root@juju ~]# groupadd -g666 www
[root@juju ~]# useradd -u666 -g666 -M -s /sbin/nologin www
[root@juju ~]# vim /etc/rsync.passwd
rsync_backup:123456
[root@juju ~]# chmod 600 /etc/rsync.passwd
[root@juju ~]# mkdir /backup /nfs
[root@juju ~]# chown www.www /backup/ /nfs
[root@juju ~]# systemctl start rsyncd
[root@juju ~]# systemctl enable rsyncd
[root@juju ~]#
NFS服务端10.0.0.6上面配置
rsync -avz /etc/hosts rsync_backup@10.0.0.7::nfs #推送文件到地址为 7backup 上面输入密码
Password: 123456 #密码是自己输入的上面文件设置的密码
目的是为了验证rsync同步目录是否可行,底层是调用lsync服务去指定目录同步共享
客户端10.0.0.5上面配置
rsync -avz /etc/hosts rsync_backup@10.0.0.7::nfs #推送文件到地址为 7backup 上面输入密码
Password: 123456 #密码是自己输入的上面文件设置的密码
目的是为了防止NFS单点故障,无法将目录共享,做这个也是为了高可用。一旦NFS故障之后,会切换到客户端挂载到backup端。
在NFS服务器(10.0.0.6)配置目的是安装lsync实现目录同步
[root@juju ~]# yum -y install lsyncd
[root@juju ~]# vim /etc/lsyncd.conf
settings {logfile = "/var/log/lsyncd/lsyncd.log",statusFile = "/var/log/lsyncd/lsyncd.status",maxProcesses = 2,nodaemon = false,
}
sync {default.rsync,source = "/data/",target = "rsync_backup@10.0.0.7::nfs",delete = true,delay = 1,rsync = {binary = "/usr/bin/rsync",password_file = "/etc/rsyncd.pwd",archive = true,compress = true,}
}
[root@juju ~]# echo 123456 > /etc/rsyncd.pwd
[root@juju ~]# chmod 600 /etc/rsyncd.pwd
[root@juju ~]# systemctl start lsyncd
[root@juju ~]# systemctl enable lsyncd
[root@juju ~]#
模拟NFS挂掉测试挂载是否会到backup上面
[root@juju ~]# ifdown ens33
[root@juju ~]# df -h
[root@juju ~]# vim /proc/mounts
(172.16.1.6:/data/imgnfsrw,relatime,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.16.1.5,local_lock=none,addr=172.16.1.60 0 )[root@juju ~]# umount -f /img
[root@juju ~]# df -h
[root@juju ~]#
[root@juju ~]#
结果显示是挂载切换到backup上面了
在10.0.0.7backup上面安装nfs防止NFS单点故障
[root@juju ~]# yum -y install nfs-utils
[root@juju ~]# vim /etc/exports
/nfs 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
[root@juju ~]# ll -d /nfs
[root@juju ~]# systemctl start nfs
[root@juju ~]# systemctl enable nfs
在10.0.0.5web服务器上面进行挂载
[root@juju ~]# showmount -e 172.16.1.7
[root@juju ~]# mount -t nfs 172.16.1.7:/nfs /img
[root@juju ~]# df -h



















