ersync 实时同步

ersync 实时同步

实时同步概述

什么是实时同步vim

实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器bash

为何要实时同步服务器

保证数据的连续性, 减小人力维护成本,解决nfs单点故障app

结合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的依赖包code

[root@nfs ~]$ yum install rsync inotify-tools -y

建立存放源码包的目录xml

[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

建立服务安装目录ip

[root@nfs ~]$ mkdir /app

将软件安装在app目录下rem

[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

源码包的安装步骤

源码包的安装步骤
解压
生成
编译
安装
相关文章
相关标签/搜索