[root@nfs01 ~]# inotifywait /data Setting up watches. Watches established. /data/ CREATE test1.txt /data/ OPEN test1.txt /data/ ATTRIB test1.txt /data/ CLOSE_WRITE,CLOSE test1.txt 创建文件,inotifywait显示创建文件的过程↑ [root@nfs01 data]# touch test1.txt
1.6.2 创建目录逻辑↓[root@nfs01 data]# mkdir testdir [root@nfs01 ~]# /data/ CREATE,ISDIR testdir
1.6.3 监控子目录下的文件↓[root@nfs01 data]# touch testdir/test01.txt [root@nfs01 ~]# inotifywait -mrq /data /data/testdir/ OPEN test01.txt /data/testdir/ ATTRIB test01.txt /data/testdir/ CLOSE_WRITE,CLOSE test01.txt
1.6.4 sed命令修改逻辑[root@nfs01 data]# sed 's#132#123#g' test.txt -i [root@nfs01 ~]# inotifywait -mrq /data --timefmt "%d-%m-%y %H:%M" --format "%T %w%f 事件信息: %e" -e moved_from /data/test.txt 事件信息: OPEN /data/sedDh5R8v 事件信息: CREATE /data/sedDh5R8v 事件信息: OPEN /data/test.txt 事件信息: ACCESS /data/sedDh5R8v 事件信息: MODIFY /data/sedDh5R8v 事件信息: ATTRIB /data/sedDh5R8v 事件信息: ATTRIB /data/test.txt 事件信息: CLOSE_NOWRITE,CLOSE /data/sedDh5R8v 事件信息: CLOSE_WRITE,CLOSE /data/sedDh5R8v 事件信息: MOVED_FROM /data/test.txt 事件信息: MOVED_TO
sed命令替换逻辑 :
01. 创建临时文件
02. 将原文件内容放置到临时文件中,修改替换临时文件中的内容,原有文件不做改动
03. 重命名临时文件,覆盖原文件
1.6.5 inotifywait监控中 -e 的参数使用inotifywait -mrq /data --timefmt "%d/%m/%y %H:%M" --format "%T %w%f 事件信息: %e" -e create
说明:表示只监听create事件
inotifywait -mrq /data --timefmt "%d/%m/%y %H:%M" --format "%T %w%f 事件信息: %e"
说明:不指定-e参数,表示监听所有事件
02. 删除事件delete
# inotifywait -mrq /data --timefmt "%F %H:%M" --format "%T %w%f 事件信息: %@e" -e delete 2017-10-17 11:28 /data/02.txt 事件信息: DELETE 2017-10-17 11:28 /data/03.txt 事件信息: DELETE 2017-10-17 11:28 /data/04.txt 事件信息: DELETE
03. 修改事件close_write
# inotifywait -mrq /data --timefmt "%F %H:%M" --format "%T %w%f 事件信息: %@e" -e delete,close_write 2017-10-17 11:30 /data/oldgirl.txt 事件信息: CLOSE_WRITE@CLOSE 2017-10-17 11:30 /data/.oldgirl.txt.swx 事件信息: CLOSE_WRITE@CLOSE 2017-10-17 11:30 /data/.oldgirl.txt.swx 事件信息: DELETE 2017-10-17 11:30 /data/.oldgirl.txt.swp 事件信息: CLOSE_WRITE@CLOSE 2017-10-17 11:30 /data/.oldgirl.txt.swp 事件信息: DELETE 2017-10-17 11:30 /data/.oldgirl.txt.swp 事件信息: CLOSE_WRITE@CLOSE 2017-10-17 11:30 /data/.oldgirl.txt.swp 事件信息: DELETE
04. 移动事件moved_to
inotifywait -mrq /data --timefmt "%F %H:%M" --format "%T %w%f 事件信息: %@e" -e delete,close_write,moved_to 2017-10-17 11:34 /data/hosts 事件信息: MOVED_TO
1.7 实时同步命令参数示意图 第2章 inotify+rsync实时同步服务部署 2.1 第一个里程碑:部署rsync服务 2.1.1 rsync服务端部署1)软件是否存在
[root@backup ~]# rpm -qa |grep rsync rsync-3.0.6-12.el6.x86_64
需求:查询到某个命令非常有用。但是不知道属于哪个软件包
yum provides rysnc
provides Find what package provides the given value
2)进行软件服务配置
[root@backup ~]# vim /etc/rsyncd.conf uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 172.16.1.0/24 auth users = rsync_backup secrets file = /etc/rsync.password [backup] comment = "backup dir by oldboy" path = /backup [nfsbackup] comment = "nfsbackup dir by hzs" path = /nfsbackup
3)创建rsync管理用户
[root@backup ~]# useradd -s /sbin/nologin -M rsync
4)创建数据备份储存目录,目录修改属主
[root@backup ~]# mkdir /nfsbackup/ [root@backup ~]# chown -R rsync.rsync /nfsbackup/
5)创建认证用户密码文件并进行授权600
echo "rsync_backup:oldboy123" >>/etc/rsync.password chmod 600 /etc/rsync.password
6)启动rsync服务
rsync --daemon
至此服务端配置完成