我的本地网络中有一个带有 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
等待reboot
几7
秒钟,然后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一起玩得开心