实时同步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 触发事件解析

  1. 重命名一个文件,会触发什么事件?
    重命名时监控到的信息:
    2018-05-09 /data/file01 事件信息:MOVED_FROM
    2018-05-09 /data/file10 事件信息:MOVED_TO
  2. 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章 循环方法总结
  3. for循环
    指定一个循环条件范围,最终会结束
  4. while循环
    指定一个循环条件,当条件满足时(为真),就会一直循环下去(死循环)
  5. 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 & 执行脚本在后台运行
    让脚步程序在后台运行的方法:
    1. sh inotify.sh &
    2. nohup sh inotify.sh &
    3. 思考:screen命令,实现脚步后台运行

以上是关于实时同步inotify+rsync的简单部署的主要内容,如果未能解决你的问题,请参考以下文章

实战案例:用rsync+inotify+shell脚本实现/www目录实时同步

rsync下行同步+inotify实时同步部署

rsync+inotify实时同步环境部署记录

inotify+rsync实现实时同步部署

inotify+rsync实现实时同步部署

rsync+inotify实时同步环境部署记录