Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这个机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
将inotify机制和rsync工具相结合,可以实现触发式备份(实时同步)——只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静默状态,这样,避免了周期性备份时存在的延迟性、周期过密等问题。
在Linux内核中,默认的inotify机制提供了三个调控参数:
[root@localhost myweb]# cat /proc/sys/fs/inotify/max_queued_events
16384 #监控事件队列数
[root@localhost myweb]# cat /proc/sys/fs/inotify/max_user_instances
128 #最多监控实例数
[root@localhost myweb]# cat /proc/sys/fs/inotify/max_user_watches
8192 #每个实例最多监控文件数
当要监控的目录、文件数量较多或者变化比较频繁时,建议通过修改“ /etc/sysctl.conf ”加大这三个参数(标准是1024的倍数):
[root@localhost myweb]# vim /etc/sysctl.conf
…
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@localhost myweb]# sysctl -p #更新并查看该参数是否生效