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

开放防火墙端口

  tcp  111 2049 端口     udp 111  4046 端口
  firewall-cmd --zone=public --add-port=4046/udp --permanent
  firewall-cmd --reload
  firewall-cmd --list-port

检查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

原文地址:https://www.cnblogs.com/allmdzz/p/10371074.html