前言
在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
也可以开机自动挂载了,而且即使因为网络或者其他原因挂载失败,也不会影响正常开机的。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2028.html