数据同步之rsync | 第2篇:inotify+rsync实时同步

文章来源:王琦的个人博客-使用OpenResty和Lua实现git pull ,互联网打杂,喜欢多语言编程,记录一些知识碎片,分享一些心得。

inotify+rsync进行实时同步流程

安装inotify

1、更新epel源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

2、yum安装

yum install -y inotify-tools

3、rpm -ql inotify-tools下两个命令

/usr/bin/inotifywait		# 实现对数据目录信息变化的监控
/usr/bin/inotifywatch		# 监控数据信息变化,对变化的数据进行统计

inotify命令和事件信息

inotifywait

  • -m 保持事件监听状态
  • -r 递归监控
  • -q 无用的输出信息不进行显示
  • –timefmt 设定日期格式
  • –format 命令执行过程中输出格式信息
  • -e 指定监控事件的信息

主要用到的事件信息有:create创建,delete删除,moved_to移入,close_wait修改

比较完整的命令:

inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e"

touch test.txt
# 输出信息
2016-03-25 ./test.txt 事件信息:CREATE
2016-03-25 ./test.txt 事件信息:OPEN
2016-03-25 ./test.txt 事件信息:ATTRIB
2016-03-25 ./test.txt 事件信息:CLOSE_WRITE,CLOSE

比较常用的命令:

inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write ./

touch test2.txt
# 输出信息
./test2.txt

用shell脚本实现inotify+rsync实时同步

#! /bin/bash

inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /backup |\
while read line
do
rsync -az --delete /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值