您的位置:首页 > 大数据 > 人工智能

使用rsync+inotifywait 实现NFS自动同步功能

2019-05-03 18:09 591 查看

NFS共享服务

1.安装nfs服务器:

yum install nfs-utils -y

2.配置nfs服务器:

cat /etc/exports

/home/work 192.168.0.*(rw,sync,all_squash) 一般这配置就可以

rw:read-write,可读写;    注意,仅仅这里设置成读写客户端还是不能正常写入,还要正确地设置共享目录的权限,参考问题7
ro:read-only,只读;
sync:文件同时写入硬盘和内存;
async:文件暂存于内存,而不是直接写入内存;
no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。
root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;
all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;
anonuid:匿名用户的UID值,通常是nobody或nfsnobody,可以在此处自行设定;
anongid:匿名用户的GID值。

rsync同步工具的常用选项:

-n:测试同步过程,不做实际修改
--delete:删除目标文件夹内多余的文档
-a:归档模式,相当于-rlptgoD
-v:显示详细操作信息
-z:传输过程中启用压缩/解压

inotifywait监控操作:

inotifywait [选项] 目标文件夹

inotifywait常用命令选项:

-m,持续监控(捕获一个事件后不退出)
-r,递归监控、包括子目录及文件
-q,减少屏幕输出信息
-e,指定监视的 modify、move、create、delete、attrib 等事件类别

安装inotifywait软件包
下载软件包 wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
解压 tar xf inotify-tools-3.13.tar.gz -C /usr/src/
配置 cd /usr/src/inotify-tools-3.13/
./configure
make && make install
在需要同步的机器添加免秘钥登录
ssh-keygen
同步公钥 ssh-copy-id 192.168.0.26
配置同步脚本 vim /root/inotify.sh
#!/bin/bash
FROM_DIR="/http/"
RSYNC_CMD=“rsync -az --delete $FROM_DIR root@192.168.0.26:/http”
while inotifywait -rqq -e modify,move,create,delete,attrib $FROM_DIR
do
$R 4000 SYNC_CMD
sleep 10
done &
给脚本添加权限chmod +x /root/inotify.sh

当主NFS服务器下的/http/文件夹发生改变,被NFS文件夹会自动同步数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: