ersync 实时同步
ersync 实时同步
实时同步概述
什么是实时同步
实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器
为什么要实时同步
保证数据的连续性, 减少人力维护成本,解决nfs单点故障
结合sersync+rsync实时同步实战
环境准备
| 主机名 | 角色 | 外网IP | 内网IP | 
|---|---|---|---|
| nfs | rsync的客户端 | 10.0.0.31 | 172.16.1.31 | 
| backup | rsync的服务端 | 10.0.0.41 | 172.16.1.41 | 
部署sersync(客户端)
安装sersync的依赖包
[root@nfs ~]$ yum install rsync inotify-tools -y
创建存放源码包的目录
[root@nfs ~]$ mkdir /source_code
获取sersync的安装包
[root@nfs ~]$ cd /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]$ tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[root@nfs /source_code]$ ll
total 712
drwxr-xr-x 2 root root     41 Oct 26  2011 GNU-Linux-x86
-rw-r--r-- 1 root root 727290 May  9  2020 sersync2.5.4_64bit_binary_stable_final.tar.gz
创建服务安装目录
[root@nfs ~]$ mkdir /app
将软件安装在app目录下
[root@nfs ~]$ mv /source_code/GNU-Linux-x86/ /app/
查看程序相关文件
[root@nfs ~]$ cd /app/
[root@nfs /app]$ ll GNU-Linux-x86/
total 1772
#程序配置文件
-rwxr-xr-x 1 root root    2214 Oct 26  2011 confxml.xml
#程序启动文件
-rwxr-xr-x 1 root root 1810128 Oct 26  2011 sersync2
修改配置文件
[root@nfs /app/GNU-Linux-x86]$ 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="/opt/data/nfs">					-----指定推送的/需要实时同步的目录
            <remote ip="172.16.1.41" name="nfs_backup"/>	-----指定推送的服务端ip和模块	
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-az"/>			-----指定rysnc推送命令的选项
            <auth start="true" users="rsync_backup" passwordfile="/tmp/rsync.passwd"/>		-----指定rsync推送命令需要的虚拟用户以及密码文件
#用sersync2启动文件启动服务,缺点是只能利用kill -9终止进程
[root@nfs ~]$ /app/sersync/sersync2 -rdo /app/sersync/confxml.xml 
使用systemd管理没有启动脚本的服务
[root@nfs ~]$ 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}'` 			----服务重启命令
PrivateTmp=true
#ps -ef|grep [s]ersync|awk '{print $2}'截取的是sersyncd服务的pid
[Install] 
WantedBy=multi-user.target
[root@nfs ~]$ systemctl start sersyncd
[root@nfs ~]$ ps -ef|grep sersync
root       8413      1  0 21:39 ?        00:00:00 /app/sersync/sersync2 -rdo /app/sersync/confxml.xml
root       8448   6998  0 21:40 pts/0    00:00:00 grep --color=auto sersync
源码包的安装步骤
源码包的安装步骤
解压
生成
编译
安装
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号