大多數Linux文件系統都是在引導時掛載的,并且在系統運行時仍然掛載。在fstab文件中配置的任何遠程文件系統也是如此。但是,有時您可能希望只在需求上掛載遠程文件系統—例如,通過減少網絡帶寬使用來提高性能,或者出于安全原因隱藏或混淆某些目錄。包autofs提供了這個特性。在本文中,我將描述如何啟動和運行基本的自動加載配置。
首先,假設NFS服務器linux.linuxidc.com已經啟動并運行。還假設這個服務器共享一個名為ourfiles的數據目錄和兩個用于linuxidc和Sarah的用戶目錄。
一些最佳實踐將使事情更好地工作:在服務器上和任何客戶端工作站上為用戶使用相同的用戶ID是一個好主意,因為他們有一個帳戶。另外,您的工作站和服務器應該具有相同的域名。檢查相關配置文件應予以確認。
alan@linuxidc:~$ sudo getent passwd linuxidc sarah
[sudo] password for alan:
linuxidc:x:1020:1020:linuxidc,,,:/home/linuxidc:/bin/bash
sarah:x:1021:1021:Sarah,,,:/home/sarah:/bin/bash
alan@linuxidc:~$ sudo getent hosts
127.0.0.1 localhost
127.0.1.1 linuxidc.linuxidc.com linuxidc
10.10.1.5 linux.linuxidc.com tree
如您所見,客戶機工作站和NFS服務器都配置在主機文件中。我假設一個基本的家庭或甚至小的辦公室網絡可能缺乏適當的內部域名服務(即。,DNS)。
安裝包
您只需要安裝兩個包:NFS客戶端函數的常用NFS包,以及提供automount函數的autofs包。
alan@linuxidc:~$ sudo apt-get install nfs-common autofs
您可以驗證autofs文件已被放置在etc目錄:
alan@linuxidc:~$ cd /etc; ll auto*
-rw-r–r– 1 root root 12596 Nov 19 2015 autofs.conf
-rw-r–r– 1 root root 857 Mar 10 2017 auto.master
-rw-r–r– 1 root root 708 Jul 6 2017 auto.misc
-rwxr-xr-x 1 root root 1039 Nov 19 2015 auto.net*
-rwxr-xr-x 1 root root 2191 Nov 19 2015 auto.smb*
alan@linuxidc:/etc$
配置autofs
現在您需要編輯其中幾個文件,并添加文件auto.home。首先,向文件auto.master添加以下兩行:
/mnt/tree /etc/auto.misc
/home/tree /etc/auto.home
每一行都以NFS共享所在的目錄開頭。繼續創建這些目錄:
alan@linuxidc:/etc$ sudo mkdir /mnt/tree /home/tree
第二步,在auto.misc文件中添加以下行:
ourfiles -fstype=nfs tree:/share/ourfiles
這一行指示autofs在auto中匹配的位置掛載ourfiles共享。用于auto.misc的主文件。如上所示,這些文件可以在目錄/mnt/樹/ourfiles中找到。
第三,創建文件自動。家與以下線:
* -fstype=nfs tree:/home/&
這一行指示autofs在auto中匹配的位置掛載用戶共享。自動.home的主文件。在本例中,linuxidc和Sarah的文件將分別在目錄/home/tree/linuxidc或/home/tree/sarah中可用。星號(稱為通配符)使每個用戶的共享在登錄時自動掛載成為可能。& and也作為通配符在服務器端表示用戶的目錄。它們的主目錄應該相應地映射到passwd文件中。如果您喜歡本地主目錄,則不必這樣做;相反,用戶可以將其用作特定文件的簡單遠程存儲。
最后,重新啟動autofs守護進程,使其能夠識別并加載這些配置文件更改。
alan@linuxidc:/etc$ sudo service autofs restart
測試autofs
如果您更改到文件中列出的目錄之一,則自動。掌握并運行ls命令,您不會立即看到任何東西。例如,將目錄(cd)更改為/mnt/tree。首先,ls的輸出不會顯示任何內容,但是在運行cd ourfiles之后,ourfiles共享目錄將自動掛載。cd命令也將被執行,您將被放置到新掛載的目錄中。
linuxidc@linuxidc:~$ cd /mnt/tree
linuxidc@linuxidc:/mnt/tree$ ls
linuxidc@linuxidc:/mnt/tree$ cd ourfiles
linuxidc@linuxidc:/mnt/tree/ourfiles$
為了進一步確認正在工作,mount命令將顯示掛載共享的詳細信息。
linuxidc@linuxidc:~$ mount
tree:/mnt/share/ourfiles on /mnt/tree/ourfiles type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.1.22,local_lock=none,addr=10.10.1.5)
對于linuxidc和Sarah來說,/home/tree目錄也會以同樣的方式工作。
我發現在我的文件管理器中書簽這些目錄很有用,以便更快地訪問。