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
运行脚本,实现同步。