NFS+autofs+inotify+sersync自动同步服务
作者:互联网
NFS+rpcbind
nfs存储服务概念
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
(1)提供透明文件访问以及文件传输
(2)容易扩充新的资源或软件,不需要改变现有的工作环境
(3) 高性能,可灵活配置
NFS是基于UDP/IP协议的应用,依赖RPC远程过程调用中间件(Remote Procedure Call)。
服务端配置:
1、安装nfs以及rpcbind
rpm -qa | grep -E "nfs|rpc"
yum install -y nfs-utils rpcbind
2、编写nfs配置文件
vim /etc/exports #(man exports )
/data 172.16.1.0/24(rw,sync)
3、创建存储目录
mkdir /data
chown nfnobody.nfsnobody /data
4、启动服务
#优先启动rpc服务
systemctl start rpcbind.service
systemctl enable rpcbind.service
#启动nfs服务
systemctl start nfs
systemctl enable nfs
客户端配置
yum install -y nfs-utils #客户端安装nfs,contos7默认安装了
mount -t nfs 172.16.1.1:/data /mnt/nfs #挂载到/mnt/nfs目录下
df -h #查看是否挂载成功
vim /etc/fstabe #自动挂载(建议使用autofs)
172.16.1.31:/nfs /mnt/nfs01 nfs defaults 0 0
NFS的常用目录
etc/exports #NFS服务的主要配置文件
/usr/sbin/exportfs #NFS服务的管理命令
/usr/sbin/showmount #客户端的查看命令
/var/lib/nfs/etab #记录NFS分享出来的目录的完整权限设定值
/var/lib/nfs/xtab #记录曾经登录过的客户端信息
NFS配置参数权限
rw #存储目录是否有读写权限
ro #存储目录是否是只读权限
sync #同步方式存储数据,数据存储安全。
async #异步方式存储数据,先保存到内存中,然后写入磁盘。(提高数据存储效率)
no_root_squash #当客户端以root管理员访问时,映射为NSF服务器的root管理员。
root_squash #当客户端以root管理员访问时,映射为匿名用户。
all_squash #将所有用户身份都进行转化。
no_all_squash #不将普通用户进行身份转化。
#注:系统默认使用root_squash和no_all_squash。
cat /var/lib/nfs/etab #查看完整的权限设定值。
#修改映射用户为:www=1002
/data 172.16.1.0/24(rw,sync,anonuid=1002,anongid=1002)
#注:服务器和本地都需要创建www用户且ID号相同,nfs文件夹权限需改为www。
NFS服务工作原理
服务端:
1、启动rpc服务,开启111端口。
2、启动nfs服务
3、实现nfs服务进程和端口号的注册
检查:nfs服务进程与端口号的注册信息
rpcinfo -p 172.16.1.1
客户端检查服务的可用状态
showmount -e 172.16.1.1
-e #显示nfs服务器的共享列表
-a#显示本机的文件资源情况
客户端mount命令参数
rw #实现挂载后挂载点目录可读可写 (默认)
ro #实现挂载后挂载点目录可读可写
suid #在共享目录中可以让setuid权限位生效 (默认)
nosuid #在共享目录中可以让setuid权限位失效 提供共享目录的安全性
exec #共享目录中的执行文件可以直接执行
noexec # 共享目录中的执行文件可以无法直接执行 提供共享目录的安全性
auto # 可以实现自动挂载 mount -a 实现加载fstab文件自动挂载
noauto # 不可以实现自动挂载
nouser #禁止普通用户可以卸载挂载点
user #允许普通用户可以卸载挂载点
#注:强制卸载挂载点
umount -lf /mnt
-l #不退出挂载点目录进行卸载
-f #强制进行卸载操作
autofs自动挂载
autof是linux守护进程,当检测到用户访问一个未挂载的文件系统时,将自动挂载该文件系统。
yun install -y autofs
vim /etc/auto.master #autofs主配置文件
/mnt/nfs01 /etc/auto.misc --ghost
#/mnt/nfs01为本地挂载路径,auto.misc为子配置文件,可自行编写
vim /etc/auto.misc
nfs -fstype=nfs,rw,sync 172.16.1.1:/nfs
#nfs为描述 #-fstype为可选,系统可自动识别 #172.16.1.1:/nfs为路径
systemctl start autofs
systemctl enable autofs
inotify+sersync文件监控同步服务
1、安装inotify-tools文件监控服务
yum install -y inotify-tools
inotifywait命令使用方法:
inotifywait [参数] 监控的目录
-m|--monitor --- 实现一直监控目录的数据变化
-r|--recursive --- 进行递归监控
-q|--quiet --- 尽量减少信息的输出
--format <fmt> --- 指定输出信息的格式
--timefmt --- 指定输出的时间信息格式
-e|--event --- 指定监控的事件信息
事件:create创建、delete删除、moved_to移入、close_write修改
#inotify应用:防止系统重要文件被破坏
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e create -e delete >> /server/inotifywait_logs/monitor_logs.txt
2、安装sersync同步服务
64位下载地址
创建软件存放目录
mkdir -r /server/tools #将工具软件统一放置在tools目录下
cd /server/tools #将sersync拷贝到这个目录
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz #解压到当前目录
cp -r GNU-Linux-x86/ /usr/local/sersync #将软件移动到usr目录下,-r并重命名ersync目录
cd /usr/local/sersync/
mkdir conf bin logs #创建3个目录,方面日后进行管理
mv confxml.xml conf
mv sersync2 bin/sersync
export PATH="$PATH:/bin:/usr/local/sersync/bin" #将sersync加入path环境变量。
3、修改sersync配置文件
vim /usr/local/sersync/conf/confxml.xml
6 <filter start="false"> #排除同步的文件正则表达式,可修改。
7 <exclude expression="(.*)\.svn"></exclude>
8 <exclude expression="(.*)\.gz"></exclude>
9 <exclude expression="^info/*"></exclude>
10 <exclude expression="^static/*"></exclude>
23 <sersync>
24 <localpath watch="/nfs"> #本地同步的文件夹
25 <remote ip="172.16.1.41" name="backup"/> #服务器端IP以及服务端目录模块
26 <!--<remote ip="192.168.8.39" name="tongbu"/>--> #可同步多台服务器
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-ar"/> #携带的参数
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>#用户名以及密码,密码权限为600
32 <userDefinedPort start="false" port="874"/><!-- port=874 --> #端口号
33 <timeout start="true" time="100"/><!-- timeout=100 -->#超时时间
34 <ssh start="false"/>
35 </rsync>
36 <failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/><!--defa ult every 60mins execute once-->#修改日志存放的目录
4、创建rsync密码
echo "123456" >/etc/rsync.password
chomod 600 /etc/rsync.password
5、启动sersync服务
sersync -dro /usr/local/sersync/conf/confxml.xml
标签:sersync,inotify,--,NFS,nfs,autofs,挂载,目录 来源: https://blog.csdn.net/kuangzhuming/article/details/115560968