sersync实时同步
实时同步的概述
什么是实时同步
实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器。
为什么要实时同步
保证数据连续性,减少人力成本,解决nfs单点故障
serync+rsync实时同步
环境准备
主机名 |
角色 |
外网IP |
内网ip |
nfs |
rsync的客户端 |
10.0.0.31 |
172.16.1.31 |
backup |
rsync的服务端 |
10.0.0.41 |
172.16.1.41 |
部署sersync(客户端)
[root@nfs ~]# yum install rsync inotify-tools -y
[root@nfs ~]# mkdir /source_code
[root@nfs /source_code]# wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz
root@nfs /source_code]# ll
-rw-r--r-- 1 root root 727290 May 9 2020 sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs source_code]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs source_code]# mkdir /app
[root@nfs source_code]# mv GNU-Linux-x86 /app/sersync
[root@nfs sersync]# ll# 程序配置文件-rwxr-xr-x 1 root root 2219 Jul 8 18:55 confxml.xml# 程序启动文件-rwxr-xr-x 1 root root 1810128 Oct 26 2011 sersync2
[root@nfs sersync]# vim confxml.xml # 修改inotify相关配置文件 <inotify> <delete start="true"/> <createFolder start="true"/> <createFile start="true"/> <closeWrite start="true"/> <moveFrom start="true"/> <moveTo start="true"/> <attrib start="true"/> <modify start="true"/> </inotify> <sersync> <localpath watch="/nfs_data"> <remote ip="172.16.1.41" name="nfs_backup"/> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> <commonParams params="-az --delete"/> <auth start="true" users="dsr_backup" passwordfile="/etc/rsync.pas"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync> <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> <crontab start="false" schedule="600"><!--600mins--> <crontabfilter start="false"> <exclude expression="*.php"></exclude> <exclude expression="info/*"></exclude> </crontabfilter>
[root@nfs sersync]# echo '123' > /etc/rsync.pas
[root@nfs sersync]# chmod 600 /etc/rsync.pas
[root@nfs /app/sersync]# /app/sersync/sersync2 -dro /app/sersync/confxml.xml
- .12.使用systemd管理没有启动脚本的服务
- 所有服务的启动服务脚本目录:/usr/lib/systemd/system
- 安装rpm包,他的启动脚本自动保存在/usr/lib/systemd/system里
- 安装二进制包和源码包的启动脚本需要自己写
[root@nfs nfs_data]# vim /usr/lib/systemd/system/sersyncd.service
[Unit]
## 描述
Description=This is sersync start service
## 描述
After=xxx
[Service]
## 后台运行
Type=forking
## 启动命令
ExecStart=/app/sersync/sersync2 -rdo /app/sersync/confxml.xml
## 停止命令
ExecStop=kill -3 `ps -ef|grep [s]ersync|awk '{print $2}'`
## 重启命令
ExecReload=kill -1 `ps -ef|grep [s]ersync|awk '{print $2}'`
## true表示给服务分配独立的临时空间
PrivateTmp=true
[Install]
WantedBy=multi-user.target