Linux

如何僅在我的本地網路中處理 NFS 掛載

  • October 19, 2017

我的本地網路中有一個帶有 NFS 共享的 NAS。如何處理那台筆記型電腦自動連接到 NFS 共享?我在 fstab 文件中嘗試了一個條目,但是當我在本地網路之外時,我的客戶端需要最多 5 分鐘才能啟動,因為他正在等待 NFS 超時。

是否有任何解決方案可以檢測到我的筆記型電腦在本地網路上並安裝比?

謝謝

在啟動時執行命令的一種方法是將其與內容一起放入/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

您可以試一下監控 nfs 掛載的監視器,然後可以採取行動。

手冊

CHECK FILESYSTEM <unique name> PATH <string> 

path 是設備/磁碟、掛載點或 NFS/CIFS/FUSE 連接字元串的路徑。如果文件系統變得不可用,Monit 將呼叫服務的 start 方法(如果已定義)。如果 Monit 在被動模式下執行或未定義啟動方法,則 Monit 只會發送錯誤警報。

例如,您可以使用這樣的規則:

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

如果 ping 失敗將不會嘗試掛載

請注意,您需要從 fstab 中刪除您的掛載以讓 monit 處理掛載

然後進行優化,你可以做一些類似的事情來檢測你的本地網路,然後讓你的第一條規則依賴它

玩得開心

引用自:https://unix.stackexchange.com/questions/399048