Samba 共有をマウントする前に他の PC が起動するのを待機します

Samba 共有をマウントする前に他の PC が起動するのを待機します

/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. 1分ごとに実行され、まだマウントされていない場合は共有をマウントする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誰かがアクセスしようとするとすぐに、オンデマンドでシステムをマウントします。

関連情報