12.3 AutoFs自動掛載服務(wù)

2022-05-31 17:28 更新

無論是Samba服務(wù)還是NFS服務(wù),都要把掛載信息寫入到/etc/fstab中,這樣遠(yuǎn)程共享資源就會自動隨服務(wù)器開機而進行掛載。雖然這很方便,但是如果掛載的遠(yuǎn)程資源太多,則會給網(wǎng)絡(luò)帶寬和服務(wù)器的硬件資源帶來很大負(fù)載。如果在資源掛載后長期不使用,也會造成服務(wù)器硬件資源的浪費??赡軙凶x者說,“可以在每次使用之前執(zhí)行mount命令進行手動掛載”。這是一個不錯的選擇,但是每次都需要先掛載再使用,您不覺得麻煩嗎?

autofs自動掛載服務(wù)可以幫我們解決這一問題。與mount命令不同,autofs服務(wù)程序是一種Linux系統(tǒng)守護進程,當(dāng)檢測到用戶試圖訪問一個尚未掛載的文件系統(tǒng)時,將自動掛載該文件系統(tǒng)。換句話說,我們將掛載信息填入/etc/fstab文件后,系統(tǒng)在每次開機時都自動將其掛載,而autofs服務(wù)程序則是在用戶需要使用該文件系統(tǒng)時才去動態(tài)掛載,從而節(jié)約了網(wǎng)絡(luò)資源和服務(wù)器的硬件資源。

    [root@linuxprobe ~]# yum install autofs
    Loaded plugins: langpacks, product-id, subscription-manager
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    rhel | 4.1 kB 00:00 
    Resolving Dependencies
    --> Running transaction check
    ---> Package autofs.x86_64 1:5.0.7-40.el7 will be installed
    --> Processing Dependency: libhesiod.so.0()(64bit) for package: 1:autofs-5.0.7-40.el7.x86_64
    --> Running transaction check
    ---> Package hesiod.x86_64 0:3.2.1-3.el7 will be installed
    --> Finished Dependency Resolution
    Dependencies Resolved
    ================================================================================
     Package Arch Version Repository Size
    ================================================================================
    Installing:
     autofs x86_64 1:5.0.7-40.el7 rhel 550 k
    Installing for dependencies:
     hesiod x86_64 3.2.1-3.el7 rhel 30 k
    Transaction Summary
    ================================================================================
    Install 1 Package (+1 Dependent package)
    Total download size: 579 k
    Installed size: 3.6 M
    Is this ok [y/d/N]: y
    Downloading packages:
    --------------------------------------------------------------------------------
    Total 9.4 MB/s | 579 kB 00:00 
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
     Installing : hesiod-3.2.1-3.el7.x86_64 1/2 
     Installing : 1:autofs-5.0.7-40.el7.x86_64 2/2 
     Verifying : hesiod-3.2.1-3.el7.x86_64 1/2 
     Verifying : 1:autofs-5.0.7-40.el7.x86_64 2/2 
    Installed:
     autofs.x86_64 1:5.0.7-40.el7 
    Dependency Installed:
     hesiod.x86_64 0:3.2.1-3.el7 
    Complete!

處于生產(chǎn)環(huán)境中的Linux服務(wù)器,一般會同時管理許多設(shè)備的掛載操作。如果把這些設(shè)備掛載信息都寫入到autofs服務(wù)的主配置文件中,無疑會讓主配置文件臃腫不堪,不利于服務(wù)執(zhí)行效率,也不利于日后修改里面的配置內(nèi)容,因此在autofs服務(wù)程序的主配置文件中需要按照“掛載目錄 子配置文件”的格式進行填寫。掛載目錄是設(shè)備掛載位置的上一級目錄。例如,光盤設(shè)備一般掛載到/media/cdrom目錄中,那么掛載目錄寫成/media即可。對應(yīng)的子配置文件則是對這個掛載目錄內(nèi)的掛載設(shè)備信息作進一步的說明。子配置文件需要用戶自行定義,文件名字沒有嚴(yán)格要求,但后綴建議以.misc結(jié)束。具體的配置參數(shù)如第7行的加粗字所示。

    [root@linuxprobe ~]# vim /etc/auto.master
    #
    # Sample auto.master file
    # This is an automounter map and it has the following format
    # key [ -mount-options-separated-by-comma ] location
    # For details of the format look at autofs(5).
    #
    /media /etc/iso.misc
    /misc /etc/auto.misc
    #
    # NOTE: mounts done from a hosts map will be mounted with the
    # "nosuid" and "nodev" options unless the "suid" and "dev"
    # options are explicitly given.
    #
    /net -hosts
    #
    # Include /etc/auto.master.d/*.autofs
    #
    +dir:/etc/auto.master.d
    #
    # Include central master map if it can be found using
    # nsswitch sources.
    #
    # Note that if there are entries for /net or /misc (as
    # above) in the included master map any keys that are the
    # same will not be seen as the first read key seen takes
    # precedence.
    #
    +auto.master

在子配置文件中,應(yīng)按照“掛載目錄 掛載文件類型及權(quán)限 :設(shè)備名稱”的格式進行填寫。例如,要把光盤設(shè)備掛載到/media/iso目錄中,可將掛載目錄寫為iso,而-fstype為文件系統(tǒng)格式參數(shù),iso9660為光盤設(shè)備格式,ro、nosuid及nodev為光盤設(shè)備具體的權(quán)限參數(shù),/dev/cdrom則是定義要掛載的設(shè)備名稱。配置完成后再順手將autofs服務(wù)程序啟動并加入到系統(tǒng)啟動項中:

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

接下來將發(fā)生一件非常有趣的事情。我們先查看當(dāng)前的光盤設(shè)備掛載情況,確認(rèn)光盤設(shè)備沒有被掛載上,而且/media目錄中根本就沒有iso子目錄。但是,我們卻可以使用cd命令切換到這個iso子目錄中,而且光盤設(shè)備會被立即自動掛載上。我們也就能順利查看光盤內(nèi)的內(nèi)容了。

    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.0G 15G 17% /
    devtmpfs 905M 0 905M 0% /dev
    tmpfs 914M 140K 914M 1% /dev/shm
    tmpfs 914M 8.9M 905M 1% /run
    tmpfs 914M 0 914M 0% /sys/fs/cgroup
    /dev/sda1 497M 119M 379M 24% /boot
    [root@linuxprobe ~]# cd /media
    [root@linuxprobe media]# ls
    [root@linuxprobe media]# cd iso
    [root@linuxprobe iso]# ls -l
    total 812
    dr-xr-xr-x. 4 root root 2048 May 7 2017 addons
    dr-xr-xr-x. 3 root root 2048 May 7 2017 EFI
    -r--r--r--. 1 root root 8266 Apr 4 2017 EULA
    -r--r--r--. 1 root root 18092 Mar 6 2012 GPL
    dr-xr-xr-x. 3 root root 2048 May 7 2017 images
    dr-xr-xr-x. 2 root root 2048 May 7 2017 isolinux
    dr-xr-xr-x. 2 root root 2048 May 7 2017 LiveOS
    -r--r--r--. 1 root root 108 May 7 2017 media.repo
    dr-xr-xr-x. 2 root root 774144 May 7 2017 Packages
    dr-xr-xr-x. 24 root root 6144 May 7 2017 release-notes
    dr-xr-xr-x. 2 root root 4096 May 7 2017 repodata
    -r--r--r--. 1 root root 3375 Apr 1 2017 RPM-GPG-KEY-redhat-beta
    -r--r--r--. 1 root root 3211 Apr 1 2017 RPM-GPG-KEY-redhat-release
    -r--r--r--. 1 root root 1568 May 7 2017 TRANS.TBL
    [root@linuxprobe ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/mapper/rhel-root 18G 3.0G 15G 17% /
    devtmpfs 905M 0 905M 0% /dev
    tmpfs 914M 140K 914M 1% /dev/shm
    tmpfs 914M 8.9M 905M 1% /run
    tmpfs 914M 0 914M 0% /sys/fs/cgroup
    /dev/cdrom 3.5G 3.5G 0 100% /media/iso
    /dev/sda1 497M 119M 379M 24% /boot
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號