1.inotify作用:内核模块,监控文件和目录的变化,通过inotify-tools工具提供inotify-wait(持续监控)和inotify-watch(短期监控)两个模块进行监控;
2.优化内核参数:
max_queued_events ##最大的时间列队
max_user_instances ##最大的实例
max_user_watchs ##最大的监控文件数量
注:实时同步是基于监控文件的,所以需要在文件所在端,并且rsync只能在发起端发出;
总结:实时同步只能处理上行,不能实现下行;
3.inotify+rsync实时同步案例:上行同步
a.安装inotify-tools;发起端192.168.100.150
tar zxvf inotify-tools-*.tar.gz -C /usr/src/
cd /usr/src/inotify-tools-*/
./configure &&make &&make install
ls /usr/local/bin/inotify*
b.inotify的使用:发起端192.168.100.150
vi /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 ##监控事件队列数
fs.inotify.max_user_instances = 1024 ##监控实例数
fs.inotify.max_user_watches = 1048576 ##监控的文件数量
:wq
sysctl -p
c.测试inotify命令;发起端192.168.100.150
mkdir /root/data
inotifywait -mrq -e modify,create,attrib,move,delete /root/data
选项注解:-m持续监控,r递归目录,q简化输出,-e指定监控事件:modify修改、create创建、attrib权限修改、move移动、delete删除;在其他终端操作文件,查看变化
d.编写脚本:发起端192.168.100.150
vi rsync_inotify.sh ##实时同步脚本
#!/bin/bash
RSYNC="rsync -avzH /root/data/ [email protected]:/tmp/ --delete"
INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /root/data/"
$INT_CMD |while read DIRECOTRY EVENT FILE;do
$RSYNC
done
:wq
chmod +x rsync_inotify.sh
rsync_inotify.sh & ##启动脚本
e.生成密钥对;发起端192.168.100.150
ssh-keygen -t rsa
ssh-copy-id [email protected]
f.测试验证,发起端创建测试文件。发起端192.168.100.150
cd /root/data
touch 1.txt
g.备份源验证文件是否同步;备份端192.168.100.151
ls /tmp/