1.inotify文件系统事件监视
- 安装inotify-tools
yum install inotify-tools -y
- inotifywait详细参数解释
inotifywait参数说明
参数名称 参数说明
-m ,-monitor 始终保持事件监听状态
-r,-recursive 递归查询目录
-q,-quiet 只打印监控事件的信息
-exclude 排除文件或目录时,不区分大小写
-t,-timeout 超时时间
--timefmt 指定时间输出格式
--format 指定输出格式
-e,event 后面指定增,删,改等事件
inotifywait events 事件说明
access 读取文件或目录内容
modify 修改文件或目录内容
attrib 文件或目录的属性改变
close_write 修改真实文件内容
close_nowrite
close
open 文件或目录被打开
moved_to 文件或目录移动到
moved_from 文件或目录从...移动到
move 移动文件或目录移动到监视目录
create 在监视目录下创建文件或目录
delete 删除监视目录下的文件或目录
delete_self
umount 卸载文件系统
%T 调用并显示定义好的时间格式
%w 显示发生变化的文件的绝对路径
%f 显示监控到的文件名称,去掉后只显示目录路径
- 测试close_write监控backup目录
inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%w%f' -e close_write /backup
2.sersync监控伪实时同步
wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
#需要监控的目录 <localpath watch="/data">
#远程rsync服务器的IP地址和模块名称 <remote ip="172.16.1.41" name="data"/>
#rsync传输的参数 <commonParams params="-az"/>
#rsync密码文件路径 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/> #
[root@nfs /opt/sersync]# ./sersync2 -h
set the system param
execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
parse the command param
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________
- 启动服务
./sersync2 -rdo confxml.xml
3. lsyncd实时同步
- lsyncd安装
yum install lsyncd -y
- 配置文件模板
/etc/lsyncd.conf
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd.status",
inotifyMode = "CloseWrite",
maxProcesses = 8,
}
sync {
default.rsync,
source = "/data",
target = "rsync_backup@172.16.1.41::data",
delete = true,
exclude = { ".*" },
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.passwd",
_extra = {"--bwlimit=200"}
}
}
sync {
default.rsync,
source = "/backup",
target = "rsync_backup@172.16.1.41::backup",
delete = true,
exclude = { ".*" },
delay = 1,
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
password_file = "/etc/rsync.passwd",
_extra = {"--bwlimit=200"}
}
}
- 启动lsyncd
systemctl start lsyncd