Linux之NFS+Auto实现触发式共享文件

一、什么是NFS网络文件系统?

1、什么是NFS?

NFS 就是 Network FileSystem 的缩写,最早之前是由sun 这家公司所发展出来的。 它最大的功能就是可以透过网络,让不同的机器、不同的操作系统、可以彼此分享个别的文件。可以简单的将他看做是一个文件服务器!这个 NFS 服务器可以让你的 PC 来将网络远程的 NFS 服务器分享的目录,挂载到本地端的机器当中, 在本地端的机器看起来,那个远程主机的目录就好像是自己的一个磁盘分区槽一样 (partition)!NFS在文件传送或信息传送过程中依赖于RPC协议。

2、什么是RPC?

RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。NFS 服务器在启动的时候就得要向 RPC 注册,所以 NFS 服务器也是一种 RPC server!

二、Linux环境下,NFS服务器的配置

服务器:

1、下载软件并且启动服务

yum install nfs-utils
systemctl start nfs

在这里插入图片描述

2、配置与NFS服务器相关的防火墙策略

firewall-cmd --list-all							##查看防火墙策略
firewall-cmd --permanent --add-service=nfs		##将nfs服务加入火墙白名单
firewall-cmd --permanent --add-service=rpc-bind	##客户端访问时随即分配端口
firewall-cmd --permanent --add-service=mountd	##火墙允许远程挂载
firewall-cmd --reload							##火墙重新加载策略

在这里插入图片描述

3、设定nfs共享方式

vim /etc/exports

/redhatlinux *(ro,sync)		##共享目录 所有挂载点同步更新、只读挂载。

在这里插入图片描述

4、刷新文件及重启,使设定共享方式生效。

exportfs -rv

在这里插入图片描述

5、测试

客户端:

 mount 172.25.254.133:/redhatlinux /mnt/nfs

在这里插入图片描述
这里因为我们服务器的共享方式设定为只读,因此没有写权限,不能完成创建文件的操作!

三、客户端auto触发式挂载

默认自动挂载:

1、下载服务软件启动服务

yum install autofs.x86_64 -y	##下载软件
systemctl start autofs		##启动服务

在这里插入图片描述

2、测试

cd /net/172.25.254.133/redhatlinux	##默认挂载目录,默认300秒不操作,自动卸载
[root@station redhatlinux]# ls
file1  file2  file3  file4  file5  file6  file7  file8  haha

在这里插入图片描述
进入路径后,会自动挂载,默认退出目录后300秒,自动卸载!

更改默认卸载目录时间:

1、更改配置文件及重启服务

vim /etc/sysconfig/autofs		##7.0版本,7.0以上为/etc/autofs

TIMEOUT=3			##默认卸载时间更改为三秒

systemctl restart autofs.service

在这里插入图片描述

2、测试

在这里插入图片描述
分析:进入目录后,自动挂载,退出目录三秒后查询,已经卸载了。这样会节约服务端和客户端的系统资源!

更改默认挂载目录

我们可以看到默认的挂载目录可能不太方便我们的工作,这个目录可以更改,那么怎么做呢?

1、更改子配置文件auto.master

vim /etc/auto.master
添加:
/opt    /etc/auto.redhat		##/opt为最终挂载点的所有父级目录,/etc/auto.redhat为手动创建的子配置文件,名称任意

在这里插入图片描述

2、创建子配置文件auto.redhat

vim /etc/auto.redhat			
redhat 172.25.254.133:/redhatlinux	##redhat为最终的挂载点的最后一级目录

在这里插入图片描述

3、重启服务

systemctl restart autofs

4、测试

[root@station ~]# cd /opt/redhat
[root@station redhat]# ls
file1  file2  file3  file4  file5  file6  file7  file8  haha

在这里插入图片描述

四、nfs的有关参数

1、对某个用户特殊权限

服务器:

vim /etc/exports
/redhatlinux *(ro,sync) 172.25.254.233(rw,sync)		##设置所有人只读挂载,233读写挂载
exportfs -rv		##使设定生效

测试:

[root@station ~]# cd /opt/redhat
[root@station redhat]# ls
file1
[root@station redhat]# touch file2
[root@station redhat]# ls
file1  file2

在这里插入图片描述
需要注意的是,这里服务器的本地文件系统的权限需要777,否则客户端即使读写挂载也不能创建或者删除文件!

2、设置创建文件保持文件所有者,所有组。

服务器:

vim /etc/exports
/redhatlinux *(ro,sync) 172.25.254.233(rw,sync,no_root_squash)
exportfs -rv

在这里插入图片描述
测试:
客户端:

[root@station ~]# cd /opt/redhat
[root@station redhat]# touch file3
[root@station redhat]# ll
total 0
-rw-r--r--. 1 root      root      0 Feb 22 09:46 file1
-rw-r--r--. 1 nfsnobody nfsnobody 0 Feb 23 08:29 file2
-rw-r--r--. 1 root      root      0 Feb 23 08:37 file3

在这里插入图片描述
分析:可以看到没有设置之前,用root用户建立的文件的所有者所有组均为nfsnobody,更改后建立的文件所有者所有组均为root。

3、设置客户端建立文件的所有者所有组

服务器:

vim /etc/exports
/redhatlinux *(ro,sync) 172.25.254.233(rw,sync,anonuid=1000,anongid=1001)

exportfs -rv

在这里插入图片描述
客户端测试:

[root@station ~]# cd /opt/redhat
[root@station redhat]# ll
total 0
-rw-r--r--. 1 root      root      0 Feb 22 09:46 file1
-rw-r--r--. 1 nfsnobody nfsnobody 0 Feb 23 08:29 file2
-rw-r--r--. 1 root      root      0 Feb 23 08:37 file3
[root@station redhat]# touch file4
[root@station redhat]# ll
total 0
-rw-r--r--. 1 root      root      0 Feb 22 09:46 file1
-rw-r--r--. 1 nfsnobody nfsnobody 0 Feb 23 08:29 file2
-rw-r--r--. 1 root      root      0 Feb 23 08:37 file3
-rw-r--r--. 1 student   redhat    0 Feb 23 08:50 file4

在这里插入图片描述

4、客户端指定以指定NFS版本挂载

客户端:

[root@station redhat]# vim /etc/auto.redhat 
[root@station redhat]# cat /etc/auto.redhat
redhat -vers=3 172.25.254.133:/redhatlinux
[root@station redhat]# systemctl restart autofs.service

在这里插入图片描述
结果,可以用mount命令查看挂载的详细信息!

mount

在这里插入图片描述

5、在挂载时设定nfs请求超时后,一段时间后返回错误

挂载时:

mount 172.25.254.133:/redhatlinux /mnt/nfs/ -o soft

在这里插入图片描述
可以用mount命令查看挂载详细信息:

mount

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值