等待其他電腦出現後再掛載 samba 共享

等待其他電腦出現後再掛載 samba 共享

我正在透過 /etc/fstab 安裝 samba 共用。我的問題是,如果它們關閉並且我啟動它們,則安裝共享的電腦將首先啟動,因此共享尚不可用。是否有一個選項可以讓他嘗試掛載它直到共享可用?

問題是,這些共享上有應用程式正常運作所需的數據

答案1

不要透過 fstab 自動掛載它,而是使用 crontab:

  1. 設定fstab不自動掛載共享

    //servername/sharename  /media/windowsshare  cifs  noauto  0  0
    

    您可以在那裡有各種其他選擇,想必您已經這樣做了。重要的部分是添加noauto確保

          noauto do not mount when "mount -a"  is  given  (e.g.,  at  boot
                 time)
    
  2. 建立一個每分鐘運行一次的 cron 作業,並安裝共用(如果尚未安裝)。將此行新增至/etc/crontab

    * * * * *   root    mount | grep windowsshare || mount /media/windowsshare
    

這樣,磁碟將在可用時立即安裝。


為了進行更細粒度的控制,您可以編寫一個腳本,i) 檢查伺服器是否在線,ii) 掛載共用(除非已掛載)。然後你可以透過 cron 運行腳本:

#!/usr/bin/env sh
hostname_or_ip_address="1.2.3.4" ## add your WIndows host's name or IP here
if ping -c 1 -W 1 "$hostname_or_ip_address" >/dev/null 2>&1; then
  mount | grep windowsshare || mount /media/windowsshare
fi

將該腳本儲存為/usr/bin/check_mount您喜歡的任何內容,使其可執行chmod +x /usr/bin/check_mount,然後將此行新增至/etc/crontab

* * * * *   root   /usr/bin/check_mount 

另一個值得研究的選擇是autofs一旦有人嘗試存取系統,它就會按需安裝系統。

相關內容