共计 2442 个字符,预计需要花费 7 分钟才能阅读完成。
大多数 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 目录也会以同样的方式工作。
我发现在我的文件管理器中书签这些目录很有用,以便更快地访问。
: