其他分享
首页 > 其他分享> > NFS+autofs+inotify+sersync自动同步服务

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