Sersync
1.环境准备:
##下载NFS
[root@nfs /data]# yum install -y nfs-utils
##修改配置文件
[root@nfs /]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
##创建存放数据的目录并授权
[root@nfs /]# mkdir data
[root@nfs /]# groupadd -g666 www
[root@nfs /]# useradd -u666 -g666 www
[root@nfs /]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@nfs /]# chown -R www.www /data/
##启动nfs
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
##下载raync
[root@backup ~]# yum install -y rsync
#修改配置文件
[root@backup ~]# 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
##创建用户、创建目录、并给用户授权
[root@backup ~]# groupadd -g666 www
[root@backup ~]# useradd -u666 -g666 www
[root@backup ~]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@backup ~]# mkdir /backup
[root@backup ~]# chown -R www.www /backup
[root@backup ~]# ll -d /backup
drwxr-xr-x 2 www www 6 Oct 20 22:40 /backup
#创建密码文件并授权600
[root@backup ~]# echo 'rsync_backup:1' >/etc/rsync.passwd
[root@backup ~]# cat /etc/rsync.passwd
rsync_backup:1
[root@backup ~]# chmod 600 /etc/rsync.passwd
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
##下载阿帕奇和php(为了创建静态文件演示sersync)
[root@web ~]# yum install -y httpd.x86_64 php
##上传网站代码
[root@web ~]# cd /var/www/html/
[root@web /var/www/html]# ll
total 0
[root@web /var/www/html]# rz -E
rz waiting to receive.
[root@web /var/www/html]# unzip kaoshi.zip
##修改httpd配置文件
[root@web /var/www/html]# vim /etc/httpd/conf/httpd.conf
User www
Group www
##创建用户、并给用户授权
[root@backup ~]# groupadd -g666 www
[root@backup ~]# useradd -u666 -g666 www
[root@backup ~]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@web /var/www/html]# chown -R www.www /var/www/html
[root@web /var/www/html]# ls -ld /var/www/html
drwxr-xr-x 2 www www 77 Oct 20 23:09 /var/www/html
##启动
[root@web /var/www/html]# systemctl start httpd.service
[root@web /var/www/html]# systemctl enable httpd.service
##在浏览器输入IP地址,即可进入网站,上传一个文件,就可以看见在/var/www/html目录创建了一个目录,然后将nfs远端服务器配置的目录挂载到这个目录,操作如下:
[root@web /var/www/html]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
[root@web ~]# mount -t nfs 172.16.1.31:/data /var/www/html/
2020-10-20/ bg.jpg index.html info.php upload_file.php
[root@web ~]# mount -t nfs 172.16.1.31:/data /var/www/html/2020-10-20
[root@web ~]#
[root@web ~]#
[root@web ~]#
[root@web ~]# df -h
Filesystem Size Used Avail Use% Mounted on
.......等等等..........
172.16.1.31:/data 17G 1.9G 16G 11% /var/www/html/2020-10-20
##测试一下,在网站上传两个文件,结果如下
[root@web ~]# ls /var/www/html/2020-10-20/
2_fang.txt 2_fang - 副本.txt
[root@nfs ~]# ls /data
2_fang.txt 2_fang - 副本.txt
###成功,准备环境完成下面开始进行Sersync
2.进行sersync安装
##在backup节点
[root@backup ~]# vim /etc/rsyncd.conf
......等等等.......(在文件后追加如下:)
[data]
path = /data
[root@backup ~]# mkdir /data
[root@backup ~]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@backup ~]# chown -R www.www /data
[root@backup ~]# ls -ld /data/
drwxr-xr-x 2 www www 6 Oct 20 23:44 /data/
##在nfs节点
[root@nfs ~]# mkdir /usr/local/sersync
[root@nfs ~]# cd /usr/local/sersync
[root@nfs /usr/local/sersync]# rz -E
[root@nfs /usr/local/sersync]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs /usr/local/sersync]# cd GNU-Linux-x86/
[root@nfs /usr/local/sersync/GNU-Linux-x86]# vim confxml.xml
[root@nfs /usr/local/sersync/GNU-Linux-x86]# vim confxml.xml
5 <fileSystem xfs="true"/>
6 <filter start="true">
15 <createFile start="true"/>
19 <attrib start="true"/>
20 <modify start="true"/>
24 <localpath watch="/data">
25 <remote ip="172.16.1.41" name="data"/>
30 <commonParams params="-avz"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
33 <timeout start="true" time="100"/><!-- timeout=100 -->
##设置密码文件并授权
[root@nfs /usr/local/sersync/GNU-Linux-x86]# echo '1' >/etc/rsync.pass
[root@nfs /usr/local/sersync/GNU-Linux-x86]# chmod 600 /etc/rsync.pass
[root@nfs ~]# /usr/local/sersync/GNU-Linux-x86/sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________
##启动sersync
[root@nfs ~]# /usr/local/sersync/GNU-Linux-x86/sersync2 -dro /usr/local/sersync/GNU-Linux-x86/confxml.xml
##获取启动后执行的命令 【手动测试一下,确保实时同步是没有问题】[root@nfs ~]# cd /data && rsync -avz -R --delete ./ --timeout=100 rsync_backup@172.16.1.41::data --password-file=/etc/rsync.pass
3.将Sersync替换为lsrnc
##下载安装lsync软件
[root@nfs ~]# yum install -y lsyncd.x86_64
##修改配置文件
[root@nfs ~]# vim /etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8,
}
sync {
default.rsync,
source = "/data",
target = "rsync_backup@172.16.1.41::data",
delete= true,
exclude = { ".*" },
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.pass",
_extra = {"--bwlimit=200"}
}
}
#创建密码文件并授权600
[root@backup ~]# echo '1' >/etc/rsync.passwd
[root@backup ~]# cat /etc/rsync.passwd
1
[root@backup ~]# chmod 600 /etc/rsync.passwd
##启动lrsync
[root@nfs ~]# systemctl start lsyncd
[root@nfs ~]# systemctl enable lsrsyncd