autofs挂载nfs
大多数Linux文件系统是在引导时挂载的,并在系统运行时保持挂载状态。 对于已在fstab
文件中配置的任何远程文件系统,也是如此。 但是,有时候您可能希望只按需安装远程文件系统,例如,通过减少网络带宽使用量来提高性能,或者出于安全原因隐藏或混淆某些目录。 软件包autofs提供了此功能。 在本文中,我将介绍如何启动和运行基本的自动挂载配置。
tree.mydatacenter.net
已启动并正在运行。
还假设该服务器共享一个名为ourfiles
的数据目录和两个用于Carl和Sarah的用户目录。
一些最佳实践将使事情变得更好:一个好主意是为服务器和任何拥有帐户的客户端工作站上的用户使用相同的用户ID。 另外,您的工作站和服务器应具有相同的域名。 检查相关的配置文件应确认。
alan@workstation1:~$ sudo getent passwd carl sarah
[sudo] password for alan:
carl:x:1020:1020:Carl,,,:/home/carl:/bin/bash
sarah:x:1021:1021:Sarah,,,:/home/sarah:/bin/bash
alan@workstation1:~$ sudo getent hosts
127.0.0.1 localhost
127.0.1.1 workstation1.mydatacenter.net workstation1
10.10.1.5 tree.mydatacenter.net tree
如您所见,客户端工作站和NFS服务器都在hosts
文件中进行了配置。 我假设一个基本的家庭甚至小型办公室网络可能缺少适当的内部域名服务(即DNS)。
安装软件包
您只需要安装两个软件包:用于NFS客户端功能的nfs-common
和用于提供自动安装功能的autofs
。
alan@workstation1:~$ sudo apt-get install nfs-common autofs
您可以验证autofs文件是否已放在etc
目录中:
alan@workstation1:~$ 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@workstation1:/etc$
配置autofs
现在,您需要编辑其中几个文件并添加文件auto.home
。 首先,将以下两行添加到文件auto.master
:
/mnt/tree /etc/auto.misc
/home/tree /etc/auto.home
每行都从将要安装NFS共享的目录开始。 继续创建这些目录:
alan@workstation1:/etc$ sudo mkdir /mnt/tree /home/tree
其次, auto.misc
添加到文件auto.misc
:
ourfiles -fstype=nfs tree:/share/ourfiles
该行指示autofs将ourfiles
共享安装在auto.master
文件中与auto.misc
相匹配的位置。 如上所示,这些文件将在目录/mnt/tree/ourfiles
。
第三,使用以下行创建文件auto.home
:
* -fstype=nfs tree:/home/&
此行指示autofs将用户共享安装在auto.master
文件中与auto.home
相匹配的位置。 在这种情况下,Carl和Sarah的文件将分别位于目录/home/tree/carl
或/home/tree/sarah
。 星号(称为通配符)使每个用户的共享都可以在登录时自动挂载。与号也用作代表服务器端用户目录的通配符。 他们的主目录应相应地映射到passwd
文件中。 如果您更喜欢本地主目录,则不必这样做。 相反,用户可以将其用作特定文件的简单远程存储。
最后,重新启动autofs
守护程序,以便它将识别并加载这些配置文件更改。
alan@workstation1:/etc$ sudo service autofs restart
测试autofs
如果更改为文件auto.master
列出的目录之一并运行ls
命令,则不会立即看到任何内容。 例如,将目录(cd)
更改为/mnt/tree
。 最初, ls
的输出不会显示任何内容,但是运行cd ourfiles
,将自动挂载ourfiles
共享目录。 cd
命令也将被执行,您将被放置到新安装的目录中。
carl@workstation1:~$ cd /mnt/tree
carl@workstation1:/mnt/tree$ ls
carl@workstation1:/mnt/tree$ cd ourfiles
carl@workstation1:/mnt/tree/ourfiles$
为了进一步确认一切正常, mount
命令将显示已安装共享的详细信息。
carl@workstation1:~$ 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)
/home/tree
目录对Carl和Sarah的工作方式相同。
我发现在文件管理器中为这些目录添加书签非常有用,以便更快地访问。
翻译自: https://opensource.com/article/18/6/using-autofs-mount-nfs-shares
autofs挂载nfs