inotify的简单配置
Linux内核从2.6.13开始,引入了inotify机制。通过intofity机制,能够对文件系统的变化进行监控,如对文件进行创建、删除、修改等操作,可以及时通知应用程序进行相关事件的处理。这种响应处理机制,避免了频繁的文件轮询任务,提高了任务的处理效率。
一、查看inotify默认参数
sysctl -a|grep -e max_queued_events -e max_user_watches -e max_user_instances
二、修改inotify参数
1、命令修改sysctl -w xxx
2、文件修改
vim /etc/sysctl.conf #添加如下代码,数据按实际情况设置,此处为默认值
fs.inotify.max_user_instances = 128
fs.inotify.max_user_watches = 8192
fs.inotify.max_queued_events = 16384
fs.epoll.max_user_watches = 199864
3、参数说明
max_user_instances:每个用户创建inotify实例最大值
max_queued_events:inotify队列最大长度,如果值太小,会出现错误,导致监控文件不准确
max_user_watches:要知道同步的文件包含的目录数,可以用 find /data/ -type d|wc -l 统计,必须保证参数值大于统计结果。
三、创建实时监控脚本。
/usr/bin/inotifywait -mrq --timefmt ‘%Y/%m/%d-%H:%M:%S‘ --format ‘%T %w %f‘ -e modify,delete,create,move,attrib /data/
1 #!/bin/bash 2 3 inotify=/usr/bin/inotifywait 4 5 $inotify -mrq --timefmt ‘%Y/%m/%d-%H:%M:%S‘ --format ‘%T %w %f‘ -e create,close_write,delete /data/ | while read file 6 7 do 8 9 cd /data/ && 10 11 rsync -az ./ --delete [email protected]192.168.1.237::backup --password-file=/etc/rsync.pass wd 12 13 done
inotifywait常用参数:
- --timefmt 时间格式 %y年 %m月 %d日 %H小时 %M分钟
- --format 输出格式 %T时间 %w路径 %f文件名
- -m 始终保持监听状态,默认触发事件即退出。
- -r 递归查询目录
- -q 打印出监控事件
-e 定义监控的事件,可用参数:
- open 打开文件
- access 访问文件
- modify 修改文件
- delete 删除文件
- create 新建文件
- attrb 属性变更
时间: 2024-10-17 10:28:32