部署监控环境
同步的实时性
按照固定周期定期同步
--时间间隔不好固定,同步不及时或资源浪费
--实时性较差
Linux内核的inotify机制
--提供事件响应式的文件系统通知机制
--安装inotify-tools控制工具可调用此机制实现监控
当目录1的内容变化时,马上执行同步到目录2
1.需要软件包:inotify-tools工具
[[email protected] Desktop]# yum -y install gcc 准备好inotify-tools需要的编译环境gcc
[[email protected] Desktop]# tar -xf inotify-tools-3.13.tar.gz 将下载后的包解压到当前目录,也可以解压到其他的目录
[[email protected] Desktop]# cd inotify-tools-3.13/ 跳转到inotify-tools-3.13目录下
[[email protected] inotify-tools-3.13]# ./configure 准备好配置
[[email protected] inotify-tools-3.13]# make 编译
[[email protected] inotify-tools-3.13]# make install 确定安装结果
2.学会使用inotifywait
可以持续跟踪指定文件夹的变化
基本用法
-inotifywait 【选项】 目标文件夹
常用命令选项
-m ,持续监控(捕获一个事件后不退出)
-r ,递归监控,包括子目录及文件
-q ,减少屏幕输出信息
-e ,指定监视的 modify,move,create ,delete,attrib等事件类别
终端一:(建立inotifywait监控文件夹/opt1的变化)
[[email protected] ~]# mkdir /opt1
[[email protected] ~]# inotifywait -mrq -e modify,create,delete /opt1
终端二:(测试inotifywait监控,在文件夹中/opt1进行操作,相应的终端一会有变化)
实现 inotify+rsync结合实时同步
基本思路
--利用while循环来反复检查监控结果
举例说明:
实现的目标:在主机主机svr7上的/var/www/html/建立实时同步到主机pc207上的/var/www/html,使得主机上的/var/www/html/目录内容有响应的变化时候,主机pc207上的/var/www/html会得到实时的更新。实现关键点在于主机svr7可以运程无密码的监控对方主机pc207。
目录1:主机svr7上的/var/www/html/
目录2:主机pc207上的/var/www/html 【目录一和目录二可以随意指定】
效果:
while 目录1的内容有变化的时候
do
rsync ... 目录1/目录2
done
1.现实SSH免密码登陆
实现方式:提前部署一个**要文件到运程主机机器
(1)在svr7生成**文件
--先检查是否有**文件
[[email protected] ~]# ls ~/.shh/id_*
ls: 无法访问/root/.shh/id_*: 没有那个文件或目录
--没有**文件,那么生成(否则跳过此部)
[[email protected] ~]# ssh-******
把**部署给运程的机器pc207
[[email protected] ~]# ssh-copy-id [email protected]
2.在svr7上编写实时同步脚本
[[email protected] ~]# vim /root/isync.sh 编写脚本
[[email protected] ~]# chmod +x /root/isync.sh 给脚本赋予权限,让其可以在linux上有执行权限。
3.测试
(1)运行/root/isync.sh脚本
(2)在主机svr7上创建的/var/www/html/ ,在主机pc207上创建/var/www/html
(3)在建立了实时同步的主机svr7上的/var/www/html/进行操作,在查看主机207上/var/www/html是否和svr7上的var/www/html内容一样。