inotifywait语法结构:
inotifywait 参数 事件 监控目录
exclude排除指定数据信息不要进行监控(区分大小写识别信息)
excludei排除指定数据信息不要进行监控(忽略大小写识别信息)
-m 保持永久监控
-d 类似-m参数
-r 监控目录中子目录数据变化
-o输出一些信息到某些目录中
将无用信息进行输出
-q输出少量信息(只输出事件信息)
-qq连事件都不打印
指定输出信息格式--format "%e %w %f"
%e显示触发事件信息
%w显示监控目录信息
%f触发事件数据信息
--timefmt "%F %T"
定义显示的时间格式信息(时间格式的定义和date命令类似)
-e指定监视的事件信息
-c --csv格式用逗号进行分割数据
事件信息:inotify采用触发机制进行监控关注******的
access文件或目录被读取时会触发监控机制
modify文件或目录被写入时候会触发
attrib文件属性信息被改动会触发
close_write文件或目录关闭,写入新的信息之后********
close_nowrite文件或目录关闭,只读模式进行关闭
close文件或目录关闭,无论文件数据是否进行读或写
open文件或目录被打开了
moved_to 文件或目录移动到监控目录中
moved_from文件或目录从监控目录移除
move文件或数据不管是从目录中移除或是移入**********
delete文件或目录被删除 **********
create文件或目录被创建出来在监控目录中***********
利用脚本实现实时同步
编写脚本思路:
发现变化数据信息 inotifywait
inotifywait -mrp --formant "%w%f"/data -e "close_write,move,create,delete" 数据信息
将变化数据进行传输 rsync
rsync -az 数据信息 rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
监控操作和同步操作建立联系
shell脚本循环语句:
for 循环语句 ---有限循环
while 循环语句 无限循环
条件为真就会一直循环
until 循环语句 无限循环
条件为假就会一直执行
脚 本解释过程:
inotifywait -mrq --format "%w%f" /data -e "close_write,move,create,delete"|while read data_info
/data/oldboy02.txt data_info=变量赋值01
/data/oldboy03.txt data_info=变量赋值02
/data/oldboy04.txt data_info=变量赋值03
do
rsync -az /data/ --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done
脚本内容:
cat /server/scripts/sync_data.sh
#!/bin/bash
inotifywait -mrq --format "%w%f" /data -e "close_write,move,create,delete"|while read data_info
do
rsync -az /data/ --delete rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done
利用软件实现实时同步过程:
sersync 实时同步软件 部署前提(inotify-tools rsync守护进程模式)
sersync软件部署过程:
第一个历程:下载软件二进制包
https://github.com/wsgzao/sersync
第二个历程:解压软件,并保存到相应目录中
cd /server/tools
unzip sersync-master.zip
cd sersync-master/
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
tree GNU-Linux-x86/
mkdir /usr/local/sersync
mv GNU-Linux-x86/* /usr/local/sersync/
第三个历程:修改sersync配置文件
vim confxml.xml
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="false"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>
24 <localpath watch="/opt/tongbu"> --- 实现实时同步配置
25 <remote ip="127.0.0.1" name="tongbu1"/>
26 <!--<remote ip="
192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="
192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-artuz"/>
31 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
第四个历程:启动服务程序
sersync -h
参数-d: 启用守护进程模式
参数-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-o: 指定配置文件,默认使用confxml.xml文件 此时存放(/opt/sersync/confxml.xml)
sersync -dro /usr/local/sersync/confxml.xml
实时同步服务出现异常:
修改配置文件参数,进行调试
<debug start="true"/>
===========================================
Linux系统软件安装方法:
1) yum安装软件方式
2) rpm安装软件方式
3) 编译安装软件方式
4) 二进制包安装软件
===========================================