Linux应用篇之autofs

前言

在Linux系统中,mount是用来挂载文件系统的,可以在系统启动的时候挂载也可以在系统启动后挂载。对于本地固定设备,如硬盘可以使用mount挂载;而光盘、软盘、NFS、SMB等文件系统具有动态性,即需要的时候才有必要挂载。光驱和软盘我们一般知道什么时候需要挂载,但NFS和SMB共享等就不一定知道了,即我们一般不能及时知道NFS共享和SMB什么时候可以挂载。而autofs服务就提供这种功能,好像windows中的光驱自动打开功能,能够及时挂载动态加载的文件系统。免去我们手动载在麻烦,并且在一要段时间内如果没有使用到挂载的文件,就会自动的将其卸载,当需要使用的时候又会自动的进行挂载。

环境

  • CentOS 7
  • autofs-5.0.7-56.el7.x86_64

安装

autofs安装很简单,推荐使用系统的包管理器进行安装
$ sudo yum install autofs

应用配置

安装完成后,默认在/etc目录下就已经有好几个关于autofs的配置文件了。
分别是:autofs.conf、autofs_ldap_auth.conf、auto.master、auto.misc、auto.net、auto.master.d目录等等
我们只需要关注几个就可以了。
首先看看autofs.conf文件,文件内容挺多的,我就不全部贴了,重点看几个:

[ autofs ]
timeout = 300 # 默认超时时间单位秒,也即是这段时间内没有使用到挂载文件,就将其卸载
browse_mode = no # 浏览模式,如果没有挂载就不能查看挂载点目录,这里有点坑,因为配置好重启服务的时候,进入挂载点的上一级目录是无法看到挂载点目录的,刚开始还以为没挂成功,cd 进入挂载目录就出现了
logging = none # 日志打印了,有三个值选择,none、verbose、debug 

还有很多很多其他的配置选项,但是不建议乱改,其实保持原有的该文件也可以用。

挂载配置

挂载配置主要先看/etc/auto.master文件:
这里去掉注释内容,默认也就这几行

/misc   /etc/auto.misc
/net   -hosts
+dir:/etc/auto.master.d
+auto.master

我们可以参考这个进行相应的配置,比如说:

/net /etc/auto.smb # /net挂载点,读取/etc/auto.smb挂载配置文件

/etc/auto.smb该文件就是输入一些挂载所需的配置,如用户名密码,远程ip目录等。

samba -fstype=cifs,username=root,password=xxx://192.168.1.2/nfs

autofs一般常用来挂载nfs和samba等等,这里我挂载的就是samba了。

nfs挂载也很简单:

nfs     -fstype=nfs     192.168.1.2:/data/Documents

最后重启服务,进入挂载点就可以看到远程机器的内容了。

$ sudo systemctl start autofs
$ cd /net/samba

问题解决

之前有一次在搭服务器集群的时候,出现了一个问题,配置是正确的但是怎么都挂载不上。$sudo systemctl status autofs查看,出现这个错误:
lookup(program): lookup for samba failed
后来查找才发现,我通过服务器scp复制过来的配置文件有x可执行权限,
执行$ sudo chmod -x /etc/auto.smb,然后再重启服务就好了。

后记

其实一开始我是在/etc/fstab中直接写挂载的,每次开机自动挂载,然后就一直挂着。但是这有一个问题,如果网络断开了,开机的时候就会进入紧急模式,无法正常开机。这个风险太大了。还是这个autofs比较好使,通过$ sudo systemctl enable autofs也可以开机自动挂载了,而且即使因为网络或者其他原因挂载失败,也不会影响正常开机的。

你可能感兴趣的:(Linux)