nfs+inotify
服务器先安装nfs服务,因为nfs服务端没有固定端口给客户端访问,所以需要借助rpc服务的111端口给客户端连接,即客户端访问rpc会调用nfs服务
yum -y install rpcbind nfs-utils
由于nfs共享目录需要给网页服务器使用,并且要对共享目录做一个实时同步操作,为了目录下文件权限的统一以及推送到rsync服务器时不会报权限错误,故在rsync服务器上新建用户,并把Uid,Gid改成65534
创建共享目录,并把权限改成nfsnobody
mkdir /nfs-server chown nfsnobody.nfsnobody /nfs-server
设置nfs配置文件
echo '/nfs-server 0.0.0.0/24(rw,async,all_squash)' >/etc/exports
先启动rpcbind,在启动nfs服务,并把服务加入开机自启动
systemctl start rpcbind systemctl enable rpcbind
开放防火墙端口
检查nfs启动情况
showmount -e 出现共享目录即为成功
下载inotify-tools
http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
解压,安装
cd inotify-tools-3.14.
./configure --prefix=/usr/local/inotify-tools-3.14
make && make install
ln -s /usr/local/inotify-tools-3.14/ /usr/local/inotify-tools
安装完写脚本监测nfs共享目录,即当目录发生创建,删除,写入,关闭时把该目录下数据实时同步到rsync服务器上
#!/bin/bash inotify=/usr/local/inotify-tools/bin/inotifywait $inotify -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e delete,create,close_write /data \ |while read file do cd / && rsync -az /data --delete rsync_backup@0.0.0.0::backup \ --password-file=/etc/rsync.password done
详细参考https://www.cnblogs.com/hackerer/p/5243639.html