一、实现从rsync服务端的rsync服务到nfs客户端部署:
1.服务器端配置:
[root@backup backup]# vim /etc/rsyncd.conf ##添加以下三行内容
[nfsbackup]
path = /nfsbackup
read only = false
[root@backup backup]# pkill rsync ##关闭rsync
[root@backup backup]# rsync --daemon ##启动rsync
[root@backup backup]# lsof -i tcp:873 ##查看是否运行
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 1122 root 4u IPv4 10751 0t0 TCP *:rsync (LISTEN)
rsync 1122 root 5u IPv6 10752 0t0 TCP *:rsync (LISTEN)
[root@backup backup]# mkdir -p /nfsbackup ##创建共享目录
[root@backup backup]# chown -R rsync.rsync /nfsbackup/ ##更改用户和属组
[root@backup backup]# ls -ld /nfsbackup/ ##查看
drwxr-xr-x 2 rsync rsync 4096 6月 9 09:30 /nfsbackup/
2.客户端测试:
[root@nfs01 backup]# rsync -avz /data/ [email protected]::nfsbackup/ --password-file=/etc/rsync.password
二、监控软件
1.inotify:Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。
Inotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。
2.sersync:是基于Inotify开发的,类似于Inotify-tools的工具。sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录。
NFS客户端安装:
[root@nfs01 backup]# uname -r #查看是否支持安装
2.6.32-431.el6.x86_64
[root@nfs01 backup]# ls -l /proc/sys/fs/inotify/ #查看是否有这个目录
总用量 0
-rw-r--r-- 1 root root 0 6月 8 19:14 max_queued_events
-rw-r--r-- 1 root root 0 6月 8 19:14 max_user_instances
-rw-r--r-- 1 root root 0 6月 8 19:14 max_user_watches
[root@nfs01 ~]# rpm -aq inotify-tools #查看是否安装
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@nfs01 ~]# yum install -y inotify-tools #安装
[root@nfs01 ~]# rpm -aq inotify-tools
inotify-tools-3.14-1.el6.x86_64
工具介绍:
一共2个工具(命令):inotifywait和inotifywatch
inotifywait:在被监控的文件或目录上等待特定文件系统事件(open、close、delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用。
inotifwatch:收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。
NFS客户端对NFS目录文件系统事件的实时监控:
[root@nfs01 ~]# inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete /backup
08/06/18 23:25 /backup/b
[root@nfs01 ~]# inotifywait -mrq --format '%w%f' -e close_write /backup
/backup/a
监控到NFS目录文件系统事件变化后,触发rsync推送变化的文件
编写脚本:
#!/bin/bash
Path=/data
Ip=172.16.1.41
/usr/bin/inotifywait -mrq --format '%w%f' -e create,close_write,delete $Path \
|while read file
do
cd $Path &&\
rsync -az ./ --delete rsync_backup@$Ip::nfsbackup \
--password-file=/etc/rsync.password
done
然后执行脚本,在服务器端查看:
在/proc/sys/fs/inotify目录下有三个文件,对inotify机制有一定的限制
max_user_watches #设置inotifuwait或inotifywatch可以监视的文件数量(单进程)
max_queued_events #设置inotify实例事件(event)队列可容纳的事件数量
max_user_instances #设置每个用户可以运行的inotifywait和inotifywatch的进程数
[root@nfs01 data]# cat /proc/sys/fs/inotify/max_user_watches
8192
[root@nfs01 data]# cat /proc/sys/fs/inotify/max_queued_events
16384
[root@nfs01 data]# cat /proc/sys/fs/inotify/max_user_instances
128
调整可以用echo:
echo 11003 >/proc/sys/fs/inotify/max_user_watches #重启会失效
vi /etc/rc.local->注释->添加/proc/sys/fs/inotify/max_user_watches