Automatisches Mounten einer Netzwerkfreigabe, die vorübergehend offline ist

Automatisches Mounten einer Netzwerkfreigabe, die vorübergehend offline ist

folgendes Problem: Ich habe einen Server, der eine Windows-Netzwerkfreigabe mounten muss, um eine Datei darauf zu kopieren. Also habe ich die Freigabe hinzugefügt, fstabdamit sie beim Start gemountet wird.

 //192.168.1.xx/share   /mnt/networkshare   cifs    noperm,username=user,password=******    0   0

Ein Skript führt eine Schleife aus, um die Datei auf die Freigabe wie folgt zu kopieren:

while [ true ]
  do
    if [ -f /path/to/the/file ]
    then
      mv /path/to/the/file /mnt/networkshare
    fi
done

Das Problem ist, dass der Windows-Computer nachts herunterfährt, wenn er morgens hochfährt. Erstens liegt während dieser Zeit die Last auf dem Server aufgrund des while [true]-Skripts zu 100 % auf einem Kern. Zweitens funktioniert das Mounten manchmal nach dem Hochfahren des Windows-Computers nicht mehr. (ein Crontab * * * * * mount -awird ausgeführt, um alles erneut zu mounten.) Die Dateien werden nicht kopiert und das Mounten ist auf dem Server nicht zugänglich. Es muss neu gestartet werden.

Wie kann ich sicherstellen, dass die Bereitstellung immer vorhanden ist, während der Computer eingeschaltet ist? Muss ich die Freigabe vielleicht irgendwie unmounten? Ich kann sie jede Nacht unmounten, aber was ist, wenn der Windows-Computer tagsüber neu gestartet wird? Wie kann ich das while [true]-Skript anhalten, wenn die Bereitstellung nachts nicht vorhanden ist, um die CPU-Auslastung zu verringern?

Vielen Dank für Ihre Hilfe!

Antwort1

Sie können die Halterung überprüfen, bevor Sie versuchen, sie zu bewegen:

df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
  mv /path/to/the/file /mnt/networkshare
fi

außerdem sleepkönnte das Hinzufügen eines Befehls zum Prozess Ihr Problem der 100%igen CPU-Auslastung abmildern. Einen Prozess ohne Pause zu hämmern, ist kein guter Ansatz.

verwandte Informationen