实验环境:centos7.6,2G内存,50G硬盘大小,虚拟机服务端ip:172.16.1.31 客户端ip:172.16.1.41
实时同步原理:
1)需要部署好rsync守护进程服务,实现数据传输
2)需要部署好inotify服务,实现目录中数据变化监控
3)将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
rsync守护进程部署流程
inotify监控服务部署流程
第一步:安装软件
yum -y insatll inotify-tools
第二步:熟悉inotify的命令使用
一:inotifywait — 监控目录数据信息变化
使用方法:
inotifywait [参数] | 监控的目录 |
---|---|
-m --monitor | 实现一直监控目录的数据变化 |
-r --recursive | 进行递归监控 |
-q --quiet | 尽量减少信息的输出 |
-e --event | 指定监控的事件信息 |
- -format | 指定信息输出的格式,%T:时间,%w目录,%f文件,%e事件信息 |
- -timefmt | 指定输出的时间信息格式 |
inotifywait演示
1.创建文件
2.删除文件
3.修改文件内容
4.指定监控的事件
从图片中我们可以看到对文件不同的操作,通过监控会产生不同的事件,这些事件有
事件 | 说明 |
---|---|
access | 访问,读取文件。 |
modify | 修改,文件内容被修改。 |
attrib | 属性,文件元数据被修改。 |
move | 移动,对文件进行移动操作。 |
create | 创建,生成新文件 |
open | 打开,对文件进行打开操作。 |
close | 关闭,对文件进行关闭操作。 |
delete | 删除,文件被删除。 |
inotify监控命令格式:inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
二:inotifywatch —对监控信息进行统计
inotifywait [参数] | 监控的目录 |
---|---|
-z -zero | 输出表格的行和列,即使元素为空 |
-r -recursive | 监视一个目录下的所有子目录 |
-t -timeout | 设置超时时间 |
-e -event | 只监听指定的事件 |
sersync同步服务部署流程:
第一步:安装软件
1.在github下载压缩包
安装包链接
2.解压
unzip sersync_installdir_64bit.zip
tar zxvf sersync_installdir_64bit.tar.gz
mkdir /usr/local/sersync/conf/confxml.xml ---配置文件
mkdir /usr/local/sersync/bin/sersync2 ---命令目录
mkdir /usr/local/sersync/logs ---日志目录
/tmp/rsync_fail_log.sh ---错误存储文件
第二步:编写配置文件
vim /usr/local/sersync/conf/confxml.xml
要修改以上地方
第三步:启动sersync服务程序
1)添加环境变量,方便我们使用sersync
vim /etc/profile
export PATH="$PATH:/usr/local/sersync/bin"
2)查看sersync的使用方法
sersync -h
主要看以下三个:
参数-d: 启用守护进程模式
参数-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍 进行同步测试
参数-o: 指定配置文件,默认使用confxml.xml文件
-o /usr/local/sersync/conf/confxml.xml
sersync -dro /usr/local/sersync/conf/confxml.xml 启动实时同步服务
出现以下内容,说明启动成功
从下面两张图片可以看到,服务端的/data目录和客户端的/backup目录,里面的文件全部一致,说明实现了无差别实现同步
第四步:停止实时同步软件
killall sersync
如果没有killall,可以通过以下命令安装
yum install -y psmisc
第五步:实现开机自启
vim /etc/rc.local
sersync -dro /usr/local/sersync/conf/confxml.xml
到此,sersync实时同步服务部署已全部配置完成