标签:pre 切换 创建 报错 odi modify 利用 方便 服务
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 #更新并查看该参数是否生效
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
接下来的操作接着上一篇配置rsync服务器的环境,以及配置,上一篇博文链接: https://blog.51cto.com/14154700/2404358
现在所有的操作是基于server B(192.168.1.2)这台服务器的:
1、安装inotify-tools:
获取源码包:
链接:https://pan.baidu.com/s/1ts6zSx3W5ybZL58tkS8enA
提取码:trfg
解包并安装:
[root@localhost media]# tar zxf inotify-tools-3.14.tar.gz -C /usr/src
[root@localhost media]# cd /usr/src/inotify-tools-3.14/
[root@localhost inotify-tools-3.14]# ./configure && make && make install
2、安装后即可使用,现在以监控server B上的/var/www/html目录:
[root@localhost /]# inotifywait -mrq -e modify,create,move,attrib,delete /var/www/html
该命令的具体选项解释如下:
-e:指定要监控哪些事件;
-m:表示持续监控;
-r:表示递归整个目录;
-q:简化输出信息;
modify:修改;
create:创建;
move:移动;
delete:删除;
attrib:属性更改;
现在切换一个终端,在监控的目录下新建一个1.html文件,则该终端的监控命令下就会提示相关信息,提示如下::
[root@localhost /]# inotifywait -mrq -e modify,create,move,attrib,delete /var/www/html
/var/www/html/ CREATE 1.html
/var/www/html/ ATTRIB 1.html
3、现在可以编写一个脚本来实现实时同步:
[root@localhost /]# vim /opt/inotify_rsync.sh
#!/bin/bash
inotify_cmd="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/"
rsync_cmd="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.1.1::wwwroot"
$inotify_cmd | while read A B C
do
$rsync_cmd
done
[root@localhost /]# chmod +x /opt/inotify_rsync.sh
[root@localhost /]# echo ‘/opt/inotify_rsync.sh‘ >> /etc/rc.local :设置开机自动运行该脚本
验证该脚本是否生效的过程如下:
注意事项:
标签:pre 切换 创建 报错 odi modify 利用 方便 服务
原文地址:https://blog.51cto.com/14154700/2404424