实时同步inotify+rsync的简单部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实时同步inotify+rsync的简单部署相关的知识,希望对你有一定的参考价值。
第1章 部署数据监控服务(inotify)
1.安装inotify软件(检查是否安装)
yum install inotify-tools -y
---基于epel源(/etc/yum.repos.d/ 源文件保存目录)
2.应用inotify软件
/usr/bin/inotifywatch --- 实现数据变化统计命令,在实际工作中没有什么用处
/usr/bin/inotifywait ---实现数据实时监控命令(重要)
语法格式: 命令 参数 事件 监控目录
简单监控命令:
inotifywait -mrq /data/ ---实现数据监控最重要的三个参数
详细监控命令:
inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /data/
相关参数:
-m --monitor ---始终保持监视状态,默认对目录只监视一次
-r ---表示进行递归监控(目录1/目录2/目录3)
-q --quiet ---将无用的信息不要输出到屏幕上 &>/dev/null
--timefmt <fmt> ---时间格式信息(date)
--format ---输出内容的格式信息
-e ---指定监控的事件信息(如果不指定此参数,表示所有事件都监控)
常见监控命令:
inotifywait -mrq --format "%w%f" -e create,close_write,delete,moved_to /data
不加事件格式信息,主要显示时间信息以及操作的内容信息
1.1 触发事件解析
- 重命名一个文件,会触发什么事件?
重命名时监控到的信息:
2018-05-09 /data/file01 事件信息:MOVED_FROM
2018-05-09 /data/file10 事件信息:MOVED_TO - sed命令替换文件信息原理过程
2018-05-09 /data/file10 事件信息:OPEN
2018-05-09 /data/sedRSK9Gs 事件信息:CREATE
2018-05-09 /data/sedRSK9Gs 事件信息:OPEN
2018-05-09 /data/file10 事件信息:ACCESS
2018-05-09 /data/sedRSK9Gs 事件信息:MODIFY
2018-05-09 /data/sedRSK9Gs 事件信息:ATTRIB
2018-05-09 /data/sedRSK9Gs 事件信息:ATTRIB
2018-05-09 /data/file10 事件信息:CLOSE_NOWRITE,CLOSE
2018-05-09 /data/sedRSK9Gs 事件信息:CLOSE_WRITE,CLOSE
2018-05-09 /data/sedRSK9Gs 事件信息:MOVED_FROM
2018-05-09 /data/file10 事件信息:MOVED_TO
第2章 部署rsync守护进程模式
服务端部署:
01.检查软件是否安装
02.编写配置文件
03.创建虚拟用户
04.创建备份目录,进行授权
05.创建密码认真文件,授权为600
06.启动rsync守护进行服务
客户端部署:
01.检查软件是否安装
02.创建密码文件,并进行授权
03.进行数据推送测试
rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password
第3章 利用脚本将inotify与rsync服务进行结合
#!/bin/bash
inotifywait -mrq --format "%w%f" -e create,close_write,delete,moved_to /data/|
while read line
do
rsync -az --delete /data/ [email protected]::backup --password-file=/etc/rsync.password
done
第4章 循环方法总结 - for循环
指定一个循环条件范围,最终会结束 - while循环
指定一个循环条件,当条件满足时(为真),就会一直循环下去(死循环) - until循环
指定一个循环,当条件不满足时(为假),就会一直循环下去(死循环)
第5章 暂停中进程的停用总结
ctrl+z ---暂停一个运行中的脚本进程
kill killall pkill --- 可以杀死一个暂停的进程
pkill -f "inotify.sh" --- -f参数表示把进程中参数信息也定义为进程名
kill -9 进程号 --- 肯定可以杀死一个暂停的进程;慎用,因为kill -9 杀进程,可能造成服务无法再次运行
jobs --- 显示在后台运行的进程或暂停的进程信息
[1]+ Stopped sh -x inotify.sh
fg 1 --- 将后台运行的进程放在前台执行,恢复一个暂停进程继续运行
bg 后台
fg 前台
sh /server/scripts/inotify.sh & 执行脚本在后台运行
让脚步程序在后台运行的方法:- sh inotify.sh &
- nohup sh inotify.sh &
- 思考:screen命令,实现脚步后台运行
以上是关于实时同步inotify+rsync的简单部署的主要内容,如果未能解决你的问题,请参考以下文章