14.4 exportfs命令

exportfs命令

  • 常用选项
  • -a 全部挂载或者全部卸载
  • -r 重新挂载
  • -u 卸载某一个目录
  • -v 显示共享目录
  • 以下操作在服务端上 -vim /etc/exports //增加
/tmp/ 192.168.133.0/24(rw,sync,no_root_squash)
  • exportfs -arv //不用重启nfs服务,配置文件就会生效
  • 以下操作在客户端
  • mkdir /aminglinux
  • mount -t nfs -onolock 192.168.133.130:/tmp /aminglinux
  • touch /aminglinux/test.txt
  • ls -l !$
  • -oremount,nfsvers=3

exportfs命令

  • exportfs命令和nfs-utils这个包一起安装的
  • 例子:
    • 假设在第一次配置nfs的共享目录,之后需要新增、更改某些机器或共享的目录;
    • 首先需要更改配置文件,然后重启NFS服务,但如果远程客户端正在使用NFS服务,正在挂载着,如果你需要先停止nfs服务,那远程的客户端就会挂起,就会很大的影响,造成服务异常,进程异常,有很大可能导致系统坏掉
  • nfs服务不能随便重启,要重启,就需要先去服务器上,把挂载的目录卸载下来
    • 在卸载目录的时候,若是在当前目录下去卸载会提示umount.nfs4: /mnt: device is busy
      • 方法一:退出该目录后,再去卸载
      • 方法二:在目录下卸载的时候,加 -l 选项,表示 lazy 懒惰的意思
    • 在卸载目录后,在重启nfs服务
  • 若是挂载了很多台机器,那么每台机器都需要去卸载,就会很麻烦,降低了工作效率
    • 方法:使用exportfs命令,重新加载下
  • exportfs命令
    • -a 全部挂载或者全部卸载
    • -r 重新挂载
    • -u 卸载某一个目录
    • -v 显示共享目录
  1. 在B机器客户端,卸载目录
[root@hf-01 ~]# umount /mnt/
[root@hf-01 ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        18G  6.5G   12G   37% /
devtmpfs        483M     0  483M    0% /dev
tmpfs           493M     0  493M    0% /dev/shm
tmpfs           493M  6.7M  486M    2% /run
tmpfs           493M     0  493M    0% /sys/fs/cgroup
/dev/sda1       197M  109M   88M   56% /boot
tmpfs            99M     0   99M    0% /run/user/0
[root@hf-01 ~]# 
  1. 然后在A机器服务端,使用exportfs -arv命令
  • exportfs -arv命令,重新使配置文件生效
[root@hanfeng ~]# exportfs -arv
exporting 192.168.202.0/24:/home/nfstestdir
[root@hanfeng ~]# 
  1. 验证,在A机器上的/etc/exports配置文件中,在增加一行,把 /tmp 目录单独共享给192.168.202.131 这个IP
[root@hanfeng ~]# vim /etc/exports

在配置文件中加入
/tmp 192.168.202.131(rw,sync,no_root_squash)

结果如下
/home/nfstestdir  192.168.202.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp 192.168.202.131(rw,sync,no_root_squash)

保存退出
  1. 然后在A机器服务端执行exportfs -arv命令
[root@hanfeng ~]# exportfs -arv
exporting 192.168.202.131:/tmp
exporting 192.168.202.0/24:/home/nfstestdir
[root@hanfeng ~]# 
  1. 在B机器客户端showmount -e看是否生效——>并没有重启nfs服务,就已经生效
[root@hf-01 ~]# showmount -e 192.168.202.130
Export list for 192.168.202.130:
/home/nfstestdir 192.168.202.0/24
/tmp             192.168.202.131
[root@hf-01 ~]# 
  1. 在B机器客户端挂载,将 tmp目录 挂载到 mnt 目录下
[root@hf-01 ~]# mount -t nfs 192.168.202.130:/tmp/ /mnt/
[root@hf-01 ~]# df -h
文件系统              容量  已用  可用 已用% 挂载点
/dev/sda3              18G  6.5G   12G   37% /
devtmpfs              483M     0  483M    0% /dev
tmpfs                 493M     0  493M    0% /dev/shm
tmpfs                 493M  6.7M  486M    2% /run
tmpfs                 493M     0  493M    0% /sys/fs/cgroup
/dev/sda1             197M  109M   88M   56% /boot
tmpfs                  99M     0   99M    0% /run/user/0
192.168.202.130:/tmp   18G  3.2G   15G   18% /mnt
[root@hf-01 ~]# 
  1. 现在在B机器客户端,查看到的/mnt/目录就是192.168.202.130IP下的tmp目录
[root@hf-01 ~]# ls /mnt/
hanfeng.sock  mysql.sock  php-fcgi.sock  test.com.log
[root@hf-01 ~]# 
  1. 再到A机器上查看tmp目录,会看到两个目录下的文件内容会一样的
[root@hanfeng ~]# ls /tmp/
hanfeng.sock  mysql.sock  php-fcgi.sock  test.com.log
[root@hanfeng ~]# 
  1. 这时在B机器客户端的mnt目录下创建文件,并查看目录下的文件,能看到新建的1212.txt文件的属主和属组都是root
[root@hf-01 ~]# vim /mnt/1212.txt
[root@hf-01 ~]# ls -l /mnt/
总用量 8
-rw-r--r-- 1 root  root    12 1月  17 2018 1212.txt
srw-rw-rw- 1 root  root     0 1月  17 2018 hanfeng.sock
srwxrwxrwx 1 mysql mysql    0 1月  17 2018 mysql.sock
srw-rw-rw- 1 root  root     0 1月  17 2018 php-fcgi.sock
-rw-r--r-- 1 root  root  2383 1月   8 19:41 test.com.log
[root@hf-01 ~]# 
  1. 这时再到A机器服务端查看tmp目录,会看到1212.txt文件的属主和属组也是root
[root@hanfeng ~]# ls -l /tmp/
总用量 8
-rw-r--r--. 1 root  root    12 1月  17 21:53 1212.txt
srw-rw-rw-. 1 root  root     0 1月  17 18:44 hanfeng.sock
srwxrwxrwx. 1 mysql mysql    0 1月  17 18:44 mysql.sock
srw-rw-rw-. 1 root  root     0 1月  17 18:44 php-fcgi.sock
-rw-r--r--. 1 root  root  2383 1月   8 19:41 test.com.log
[root@hanfeng ~]# 
  1. 这就是因为在A机器服务端的配置文件中,使用了no_root_squash ,所以root用户不受约束,在B机器上到挂载点下,到共享目录下,就可以像在本地磁盘使用root用户一样,是不受限制的(通常情况下,不限制root用户的比较多)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 18.04上安装和配置GitLab

GitLab CE或Community Edition是一个开源应用程序,主要用于托管Git存储库,以及其他与开发相关的功能,如问题跟踪。它旨在使用您自己的基础...

2.2K1
来自专栏前端知识分享

第106天:Ajax中同步请求和异步请求

用户填写所有信息后,提交给服务器,等待服务器的回应(检验数据),是一次性的。信息错误又要重新填写!

1362
来自专栏Ryan Miao

linux centos中添加删除修改环境变量,设置java环境变量

前言 安装完软件必要添加环境变量。指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋。好吧,好记星不如烂笔头。当然,最重要的是,...

3846
来自专栏JAVA高级架构

高性能MySQL复制与缓存

1372
来自专栏编程心路

win10 下配置 PHP 独立开发环境总结

Apache 的官网上是不能下载 Apache 服务器的安装包的,只提供 Apache 的源码,下载下来需要用 VC++ 重新编译一下,并且还要配置不少东西(心...

1394
来自专栏Linux运维学习之路

day4、Linux基础题目

第一题 我想在/data/da 目录下面创建 一个 da.txt 文件  [root@ll ~]# cd /data/oldboyedu -bash: cd: ...

2538
来自专栏LinXunFeng的专栏

MAC OSX安装Python环境 + Visual Studio Code

1383
来自专栏hrscy

记录网站诞生过程-使用hexo+github pages

此博客记录了搭建网站的详细过程,以及建站过程中遇到的一些坑。博客介绍了安装homebrew,nodejs,hexo,域名注册,github设置,DNS解析等过程...

1073
来自专栏运维小白

14.3 NFS配置选项

NFS配置选项 rw 读写 ro 只读 sync 同步模式,内存数据实时写入磁盘,相应的就会降低磁盘效率 async 非同步模式,它会每隔一段时间才会将数据刷新...

2246
来自专栏python爬虫实战之路

redis集群配置及python操作

之前我们分析过喜马拉雅的爬取信息,使用分布式爬取,而且需要修改scrapy-redis的过滤算法为布隆过滤来减少redis内存占用,最后考虑这样还是不一定够,那...

1214

扫码关注云+社区

领取腾讯云代金券