sersync实时同步实战

第1章 实时同步

1.1 什么是实时同步

实时同步是一种只要当前目录触发事件,就马上同步到远程的目录。rsync

1.2 为什么要实时同步web->nfs->backup

保证数据的连续性(定时任务是以分钟为单位的)

减少人力维护成本

1.3 实时同步工具的选择

inotify+RSYNC(x)

sersync+RSYNC(√)

lsyncd

第2章 实时备份实践

2.1 准备环境

角色

 

外网IP(NAT)

 

内网IP(LAN)

 

安装工具

 

web01

 

eth0:10.0.0.7

 

eth1:172.16.1.7

     

nfs-server

 

eth0:10.0.0.31

 

eth1:172.16.1.31

 

rsync+inotify+sersync

 

backup

 

eth0:10.0.0.41

 

eth1:172.16.1.41

 

rsync-server

 

2.2 配置好backup服务器

2.2.1 安装rsync

[root@backup ~]# yum install rsync -y

2.2.2 配置rsync

[root@backup ~]# vi /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = true
secrets file = /etc/rsync.password
auth users = rsync_backup
log file = /var/log/rsyncd.log
#####################################
[backup]
path = /backup
 
[data]
path = /data

2.2.3 创建数据目录

[root@backup ~]# mkdir /backup

[root@backup ~]# mkdir /data

2.2.4 创建用户并授权

[root@backup ~]# useradd -M -s /sbin/nologin rsync

[root@backup ~]# chown -R rsync.rsync /backup/ /data/

[root@backup ~]# ll -d /backup/ /data/

drwxr-xr-x 7 rsync rsync 256 9月  7 08:52 /backup/

drwxr-xr-x 2 rsync rsync  6 9月  7 11:44 /data/

2.2.5 创建链接的虚拟用户密码文件并赋予600权限

[root@backup ~]# echo "rsync_backup:1" /etc/rsync.password

[root@backup ~]# chmod 600 /etc/rsync.password

2.2.6 启动rsyncd

[root@backup ~]# systemctl restart rsyncd

2.3 配置好nfs服务器

2.3.1 安装nfs

[root@nfs ~]# yum install nfs-utils -y

2.3.2 配置nfs

[root@nfs ~]# vim /etc/exports

/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

2.3.3 配置nfs依赖环境

[root@nfs ~]# groupadd -g 666 www

[root@nfs ~]# useradd -u 666 -g 666 www

[root@nfs ~]# mkdir /data

[root@nfs ~]# chown -R /data

2.3.4 启动nfs

[root@nfs ~]# systemctl enable rpcbind nfs-utils

[root@nfs ~]# systemctl start rpcbind nfs-server

2.4 配置好web服务器

2.4.1 先安装对应的工具包

[root@web01 ~]# yum install nfs-utils -y

[root@web01 ~]# systemctl start rpcbind

2.4.2 创建目录,用于挂载使用

[root@web01 ~]# mkdir /data

2.4.3 挂载nfs的data目录

[root@web01 ~]# showmount -e 172.16.1.31

Export list for 172.16.1.31:

/data 172.16.1.0/24

[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data

2.4.4 通过windows上传一个视频或图片至/data

[root@web01 ~]# wget

2.4.5 验证内容是否存在nfs服务器

[root@nfs ~]# ls /data/

cad88c2e57f44e93b664a48a98a47108_th.jpg  tes1  test

2.5 nfs共享的data目录一旦发生变化,实时的同步至backup

2.5.1 安装inotify-tools

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

2.5.2 安装sersync

[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz

2.5.3 解压并重命名

[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

[root@nfs ~]# mv GNU-Linux-x86/ /usr/local/sersync

2.5.4 配置好sersync即可

[root@nfs01 sersync]# vim /usr/local/sersync/confxml.xml            vim进入文件以后按esc键,然后:set nu 显示行号,然后在进行修改对应行号需要修改的地方

5    <fileSystem xfs="true"/>  <!-- 文件系统 -->
 6    <filter start="false">  <!-- 排除不想同步的文件-->
 7        <exclude expression="(.*)\.svn"></exclude>
 8        <exclude expression="(.*)\.gz"></exclude>
 9        <exclude expression="^info/*"></exclude>
 10        <exclude expression="^static/*"></exclude>
 11    </filter>

12    <inotify> <!-- 监控的事件类型 -->
 13        <delete start="true"/>
 14        <createFolder start="true"/>
 15        <createFile start="true"/>
 16        <closeWrite start="true"/>
 17        <moveFrom start="true"/>
 18        <moveTo start="true"/>
 19        <attrib start="false"/>
 20        <modify start="false"/>
 21    </inotify>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c2bad0624e02dd433b422bab40c591e9.html