如何仅在本地网络中处理 NFS 挂载

如何仅在本地网络中处理 NFS 挂载

我的本地网络中有一个带有 NFS 共享的 NAS。如何处理笔记本电脑自动连接到 NFS 共享的情况?我尝试了 fstab 文件中的一个条目,但是当我在本地网络之外时,我的客户端需要最多 5 分钟才能启动,因为他正在等待 NFS 超时。

有没有任何解决方案可以检测到我的笔记本电脑位于本地网络上并安装?

谢谢

答案1

/etc/cron.d/nfsmount在启动时执行命令的一种方法是将其与内容一起放入:

@reboot root /bin/sleep 7 && /bin/ping -c 1 -W 1 10.0.0.2 > /dev/null && /bin/mount /foo

等待reboot7秒钟,然后ping以秒为单位执行一个超时1,如果一切顺利,则mount使用 中指定的参数进行 NFS /etc/fstab

/etc/fstab应该可以选择noauto

10.0.0.2:/foo /foo nfs noauto 0 0

如果你有的话,systemd你可能想看看systemd.automount

答案2

您可以进行一次监视,它将监视 nfs 安装,然后可以采取行动。

来自手动的

CHECK FILESYSTEM <unique name> PATH <string> 

path 是设备/磁盘、安装点或 NFS/CIFS/FUSE 连接字符串的路径。如果文件系统变得不可用,Monit 将调用服务的启动方法(如果已定义)。如果 Monit 以被动模式运行或未定义启动方法,Monit 将仅发送错误警报。

例如,您可以使用如下规则:

check filesystem nfsDisk1 with path nfs://<yournfsexport>
       if does not exist then exec "ping host && mount..."

如果 ping 失败将不会尝试挂载

请注意,您需要从 fstab 中删除挂载,以便让 monit 处理挂载

然后为了优化,您可以执行类似的操作来检测本地网络,然后使您的第一个规则依赖于它

和monit一起玩得开心

相关内容