inotify+rsync(实现实时同步备份)

rsync部署参考上篇文章

1、安装inotify-tools

inotify-tools是一个C库和一组命令行的工作提供Linux下inotify的简单接口。
在安装inotify-tools之前,请确保内核版本高于2.6.13,且在/proc/sys/fs/inotify目录下有以下三项,这表示系统支持inotify监控.

max_queued_events调用inotify_init时分配到inotify instance中可排队的event数的最大值,超出值时的事件被丢弃,但会触发队列溢出Q_OVERFLOW事件。
max_user_instances每一个real user可创建的inotify instances数量的上限。
max_user_watches每个inotify实例相关联的watches的上限,即每个inotify实例可监控的最大目录、文件数量。如果监控的文件数目巨大,需要根据情况适当增加此值。

命令安装:
sudo apt-get install inotify-tools
inotify-tools工具只提供了两个命令:inotifywait和inotifywatch

(1)inotifywait命令:用于等待文件发生变化,所以可以实现监控(watch)的功能,该命令是inotify的核心命令。
(2)inotifywatch命令:用于收集文件系统的统计数据,例如发生了多少次inotify事件,某文件被访问了多少次等等,一般用不上。

2、inotifywait命令

(1)inotifywait命令的选项:
在这里插入图片描述
(2)inotifywait -e可监控的事件:
在这里插入图片描述
大多数只需要监控close、close_write、close_nowrite、moved_to、moved_from、delete和isdir。由于一般情况下inotify都是为了监控文件的增删改,不会监控它的访问,所以一般只需监控close_write即可。

3、使用举例:

(1)inotifywait通过命令监控

inotifywait -m /www  # 以前台方式监控目录,由于没指定监控的事件,所以监控所有事件

(2)inotify和rsync通过shell脚本简单备份

mkdir inotify.sh

#!/bin/bash
#inotify test
SRC=/www/                                     #备份源目录#
DEST=rsync@172.16.18.95::testmodule            #目标目录#
PASS_FILE=/etc/rsyncd/rsyncd.sercrets            #密码文件位置#
inotifywait -rmq --timefmt '%y-%m-%d %H:%M' --format '%T %w %f %e' -e modify,delete,create,move,attrib ${SRC} |  while read line ; 
do
        rsync -avztP --delete --exclude --progress ${SRC}  ${DEST} --password-file=${PASS_FILE} --port=873
done

inotify.sh的权限最少是744
运行脚本,实现同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值