12.3 AutoFs自动挂载服务

无论是Samba服务还是NFS服务,都要把挂载信息写入到/etc/fstab中,这样远程共享资源就会自动随服务器开机而进行挂载。虽然这很方便,但是如果挂载的远程资源太多,则会给网络带宽和服务器的硬件资源带来很大负载。如果在资源挂载后长期不使用,也会造成服务器硬件资源的浪费。可能会有读者说,“可以在每次使用之前执行mount命令进行手动挂载”。这是一个不错的选择,但是每次都需要先挂载再使用,您不觉得麻烦吗?

autofs自动挂载服务可以帮我们解决这一问题。与mount命令不同,autofs服务程序是一种Linux系统守护进程,当检测到用户试图访问一个尚未挂载的文件系统时,将自动挂载该文件系统。换句话说,我们将挂载信息填入/etc/fstab文件后,系统在每次开机时都自动将其挂载,而autofs服务程序则是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。

  1. [root@linuxprobe ~]# yum install autofs
  2. Loaded plugins: langpacks, product-id, subscription-manager
  3. This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
  4. rhel | 4.1 kB 00:00
  5. Resolving Dependencies
  6. --> Running transaction check
  7. ---> Package autofs.x86_64 1:5.0.7-40.el7 will be installed
  8. --> Processing Dependency: libhesiod.so.0()(64bit) for package: 1:autofs-5.0.7-40.el7.x86_64
  9. --> Running transaction check
  10. ---> Package hesiod.x86_64 0:3.2.1-3.el7 will be installed
  11. --> Finished Dependency Resolution
  12. Dependencies Resolved
  13. ================================================================================
  14. Package Arch Version Repository Size
  15. ================================================================================
  16. Installing:
  17. autofs x86_64 1:5.0.7-40.el7 rhel 550 k
  18. Installing for dependencies:
  19. hesiod x86_64 3.2.1-3.el7 rhel 30 k
  20. Transaction Summary
  21. ================================================================================
  22. Install 1 Package (+1 Dependent package)
  23. Total download size: 579 k
  24. Installed size: 3.6 M
  25. Is this ok [y/d/N]: y
  26. Downloading packages:
  27. --------------------------------------------------------------------------------
  28. Total 9.4 MB/s | 579 kB 00:00
  29. Running transaction check
  30. Running transaction test
  31. Transaction test succeeded
  32. Running transaction
  33. Installing : hesiod-3.2.1-3.el7.x86_64 1/2
  34. Installing : 1:autofs-5.0.7-40.el7.x86_64 2/2
  35. Verifying : hesiod-3.2.1-3.el7.x86_64 1/2
  36. Verifying : 1:autofs-5.0.7-40.el7.x86_64 2/2
  37. Installed:
  38. autofs.x86_64 1:5.0.7-40.el7
  39. Dependency Installed:
  40. hesiod.x86_64 0:3.2.1-3.el7
  41. Complete!

处于生产环境中的Linux服务器,一般会同时管理许多设备的挂载操作。如果把这些设备挂载信息都写入到autofs服务的主配置文件中,无疑会让主配置文件臃肿不堪,不利于服务执行效率,也不利于日后修改里面的配置内容,因此在autofs服务程序的主配置文件中需要按照“挂载目录 子配置文件”的格式进行填写。挂载目录是设备挂载位置的上一级目录。例如,光盘设备一般挂载到/media/cdrom目录中,那么挂载目录写成/media即可。对应的子配置文件则是对这个挂载目录内的挂载设备信息作进一步的说明。子配置文件需要用户自行定义,文件名字没有严格要求,但后缀建议以.misc结束。具体的配置参数如第7行的加粗字所示。

  1. [root@linuxprobe ~]# vim /etc/auto.master
  2. #
  3. # Sample auto.master file
  4. # This is an automounter map and it has the following format
  5. # key [ -mount-options-separated-by-comma ] location
  6. # For details of the format look at autofs(5).
  7. #
  8. /media /etc/iso.misc
  9. /misc /etc/auto.misc
  10. #
  11. # NOTE: mounts done from a hosts map will be mounted with the
  12. # "nosuid" and "nodev" options unless the "suid" and "dev"
  13. # options are explicitly given.
  14. #
  15. /net -hosts
  16. #
  17. # Include /etc/auto.master.d/*.autofs
  18. #
  19. +dir:/etc/auto.master.d
  20. #
  21. # Include central master map if it can be found using
  22. # nsswitch sources.
  23. #
  24. # Note that if there are entries for /net or /misc (as
  25. # above) in the included master map any keys that are the
  26. # same will not be seen as the first read key seen takes
  27. # precedence.
  28. #
  29. +auto.master

在子配置文件中,应按照“挂载目录 挂载文件类型及权限 :设备名称”的格式进行填写。例如,要把光盘设备挂载到/media/iso目录中,可将挂载目录写为iso,而-fstype为文件系统格式参数,iso9660为光盘设备格式,ro、nosuid及nodev为光盘设备具体的权限参数,/dev/cdrom则是定义要挂载的设备名称。配置完成后再顺手将autofs服务程序启动并加入到系统启动项中:

  1. [root@linuxprobe ~]# vim /etc/iso.misc
  2. iso -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom
  3. [root@linuxprobe ~]# systemctl start autofs
  4. [root@linuxprobe ~]# systemctl enable autofs
  5. ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'

接下来将发生一件非常有趣的事情。我们先查看当前的光盘设备挂载情况,确认光盘设备没有被挂载上,而且/media目录中根本就没有iso子目录。但是,我们却可以使用cd命令切换到这个iso子目录中,而且光盘设备会被立即自动挂载上。我们也就能顺利查看光盘内的内容了。

  1. [root@linuxprobe ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/rhel-root 18G 3.0G 15G 17% /
  4. devtmpfs 905M 0 905M 0% /dev
  5. tmpfs 914M 140K 914M 1% /dev/shm
  6. tmpfs 914M 8.9M 905M 1% /run
  7. tmpfs 914M 0 914M 0% /sys/fs/cgroup
  8. /dev/sda1 497M 119M 379M 24% /boot
  9. [root@linuxprobe ~]# cd /media
  10. [root@linuxprobe media]# ls
  11. [root@linuxprobe media]# cd iso
  12. [root@linuxprobe iso]# ls -l
  13. total 812
  14. dr-xr-xr-x. 4 root root 2048 May 7 2017 addons
  15. dr-xr-xr-x. 3 root root 2048 May 7 2017 EFI
  16. -r--r--r--. 1 root root 8266 Apr 4 2017 EULA
  17. -r--r--r--. 1 root root 18092 Mar 6 2012 GPL
  18. dr-xr-xr-x. 3 root root 2048 May 7 2017 images
  19. dr-xr-xr-x. 2 root root 2048 May 7 2017 isolinux
  20. dr-xr-xr-x. 2 root root 2048 May 7 2017 LiveOS
  21. -r--r--r--. 1 root root 108 May 7 2017 media.repo
  22. dr-xr-xr-x. 2 root root 774144 May 7 2017 Packages
  23. dr-xr-xr-x. 24 root root 6144 May 7 2017 release-notes
  24. dr-xr-xr-x. 2 root root 4096 May 7 2017 repodata
  25. -r--r--r--. 1 root root 3375 Apr 1 2017 RPM-GPG-KEY-redhat-beta
  26. -r--r--r--. 1 root root 3211 Apr 1 2017 RPM-GPG-KEY-redhat-release
  27. -r--r--r--. 1 root root 1568 May 7 2017 TRANS.TBL
  28. [root@linuxprobe ~]# df -h
  29. Filesystem Size Used Avail Use% Mounted on
  30. /dev/mapper/rhel-root 18G 3.0G 15G 17% /
  31. devtmpfs 905M 0 905M 0% /dev
  32. tmpfs 914M 140K 914M 1% /dev/shm
  33. tmpfs 914M 8.9M 905M 1% /run
  34. tmpfs 914M 0 914M 0% /sys/fs/cgroup
  35. /dev/cdrom 3.5G 3.5G 0 100% /media/iso
  36. /dev/sda1 497M 119M 379M 24% /boot

出现问题?大胆提问!

因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~

Linux技术交流请加A群:560843(),B群:340829(推荐),C群:463590(推荐),点此查看全国群

*本群特色:通过口令验证确保每一个群员都是《Linux就该这么学》的读者,答疑更有针对性,不定期免费领取定制礼品。

本章节的复习作业(答案就在问题的下一行哦,用鼠标选中即可看到的~)

1.要想实现Linux系统与Windows系统之间的文件共享,能否使用NFS服务?

答:不可以,应该使用Samba服务程序,NFS服务仅能实现Linux系统之间的文件共享。

2.用于管理Samba服务程序的独立账户信息数据库的命令是什么?

答:pdbedit命令用于管理Samba服务程序的账户信息数据库。

3.简述在Windows系统中使用Samba服务程序来共享资源的方法。

答:在开始菜单的输入框中按照\192.168.10.10的格式输入访问命令并回车执行即可。在Windows的“运行”命令框中按照“\192.168.10.10”的格式输入访问命令并按回车键即可。

4.简述在Linux系统中使用Samba服务程序来共享资源的步骤方法。

答:首先应创建密码认证文件以及挂载目录,然后把挂载信息写入到/etc/fstab文件中,最后执行mount -a命令挂载使用。

5.如果在Linux系统中默认没有安装NFS服务程序,则需要安装什么软件包呢?

答:NFS服务程序的软件包名字为nfs-utils,因此执行yum install nfs-utils命令即可。

6.在使用NFS服务共享资源时,若希望无论NFS客户端使用什么帐户来访问共享资源,都会被映射为本地匿名用户,则需要添加哪个参数。

答:需要添加all_squash参数,以便更好地保证服务器的安全。

7.客户端在查看到远程NFS服务器上的共享资源列表时,需要使用哪个命令?

答:使用showmount命令即可看到NFS服务器上的资源共享情况。

8.简述autofs服务程序的作用。

答:实现动态灵活的设备挂载操作,而且只有检测到用户试图访问一个尚未挂载的文件系统时,才自动挂载该文件系统。

本文原创地址:https://www.linuxprobe.com/chapter-12.html   编辑:刘遄,审核员:暂无

为您推荐一些与本文相关的文章:

转载必需保留本文链接:https://www.linuxprobe.com/chapter-12.html

本文依据CC-BY-NC-SA 3.0协议发布,竭诚为读者提供Linux视频教程、Linux学习资料以及红帽考试资料等优质学习资源。