Warten, bis der andere PC hochfährt, bevor die Samba-Freigabe gemountet wird

Warten, bis der andere PC hochfährt, bevor die Samba-Freigabe gemountet wird

Ich mounte eine Samba-Freigabe über /etc/fstab. Mein Problem ist, wenn sie heruntergefahren sind und ich sie starte, ist die Maschine, die die Freigabe mountet, zuerst aktiv und daher ist die Freigabe noch nicht verfügbar. Gibt es eine Option, dass er versucht, sie zu mounten, bis die Freigabe verfügbar ist?

Das Problem ist, dass sich auf diesen Shares Daten befinden, die Anwendungen für den ordnungsgemäßen Betrieb benötigen.

Antwort1

Mounten Sie es nicht automatisch über fstab, sondern verwenden Sie stattdessen eine Crontab:

  1. Stellen Sie ein fstab, dass die Freigabe nicht automatisch gemountet wird.

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

    Sie können dort verschiedene andere Optionen haben, vermutlich haben Sie sie bereits. Der wichtige Teil ist, das hinzuzufügen, das noautosicherstellt, dass

          noauto do not mount when "mount -a"  is  given  (e.g.,  at  boot
                 time)
    
  2. Erstellen Sie einen Cron-Job, der jede Minute ausgeführt wird und die Freigabe einbindet, falls sie noch nicht eingebunden ist. Fügen Sie diese Zeile hinzu zu/etc/crontab

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

Auf diese Weise wird die Festplatte gemountet, sobald sie verfügbar ist.


Für eine feinere Kontrolle können Sie ein Skript schreiben, das i) prüft, ob der Server online ist und ii) die Freigabe einbindet, sofern sie nicht eingebunden ist. Sie können das Skript dann per Cron ausführen:

#!/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

Speichern Sie das Skript unter /usr/bin/check_mounteinem beliebigen Namen, machen Sie es ausführbar mit chmod +x /usr/bin/check_mountund fügen Sie diese Zeile hinzu zu/etc/crontab

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

Eine weitere Option, die es wert ist, untersucht zu werden, istautofsdas Systeme bei Bedarf mountet, sobald jemand versucht, auf sie zuzugreifen.

verwandte Informationen