dasmuel
Goto Top

Suche Linux Bash Skript um SMB Mount bzw. SMB Laufwerk zu testen bzw. validieren

Es wird ein Linux Bash Skript gesucht, welches ein anzugebendes SMB Laufwerk auf Verfügbarkeit testet - das ganze soll z.B. als crontab Eintrag regelmäßig aufgerufen werden.

Guten Tag,

wie im Vorwort erwähnt, wird ein Bash Skript gesucht, welches ein anzugebendes Samba Laufwerk auf Verfügbarkeit testet.

Ein erster eigen programmierter Ansatz scheint an einem nicht zurückkehrenden "touch"-Befehl zu scheitern, sollte das SMB-Laufwerk ausgefallen sein (es wurden 6300 Prozesse durch crontab erzeugt und schließlich ist der Server abgeschmiert).

Folgende Konfiguration wurde ausprobiert:

crontab -l - Start<<
  • * * * * sh /monitor/smb_monitor.sh
crontab -l - Ende<<

smb_monitor.sh - Start<<
#!/bin/bash
#
  1. Initiiert für alle Einträge von >MOUNT< eine Prüfung
  2. ####################################################
  3. Einzelne Aufrufe der zu Überwachenden Mountpunkte
#
  1. >> sh smb_test.sh >Mountpunkt< <<
#
MOUNT="/NL";

sh smb_test.sh $MOUNT;

if [ $? -eq 1 ]; then

echo `date` " [FEHLER]: " $MOUNT " ist nicht verfügbar."; >> smb.mon.log;

fi
smb_monitor.sh - Ende<<

smb_test.sh - Start<<
#!/bin/bash
#
  1. smb_test.sh
  2. ***
  3. Testet ein übergebenes SMB-LW
#
  1. Parameterübergabe an test_smb.sh:
  2. $1 = lokaler Pfad zum Mountpunkt
#

  1. Konfiguration des Verzeichnis
LOCATION="/monitor";

  1. .. der Debug-Logdatei
DEBLOG="smb.log.deb";

  1. .. der Error-Logdatei
ERRLOG="smb.log.err";

  1. .. der Test-Datei
TESTFILE=".smb.test";

  1. Prüfe korrekte Anzahl an Parametern
if [ ! $# -eq 1 ]; then
      1. Falsche Anzahl an Parametern, exit
      echo `date` ": [DEBUG] Falsche Anzahl der Parameter - Exit 1" >> $DEBLOG;
      exit 1;

      fi

      1. Lese die Existenz der TESTDATEI
      if [ -f $1/$TESTFILE ]; then

          1. Wenn die Datei existiert und gelesen werden kann,
          2. muss das SMB-LW i.O. sein
      echo `date` ": [DEBUG] Test des SMB-LW "$1" erfolgreich - Exit 0" >> $DEBLOG;
      exit 0;

      else

          1. Ansonsten: versuche die LOCKDATEI zu schreiben

          touch $1/$LOCKNAME

              1. Prüfe erneut die LOCKDATEI

              if [ -f $1/$LOCKNAME ]; then

                      1. Die Datei wurde geschrieben, also muss SMB-LW i.O sein
                      echo `date` ": [DEBUG] Test des SMB-LW "$1" erfolgreich - Exit 0" >> $DEBLOG;
                      exit 0;

                      else

                              1. Die Datei wurde immer noch nicht geschrieben - das SMB-LW
                              2. muss defekt sein!
                      echo `date` ": [FEHLER]: das SMB-LW mit lokalen Mountpunkt "$1" ist defekt." >> $ERRLOG;
                      echo `date` ": [DEBUG] Test des SMB-LW "$1" fehlgeschlagen - Exit 1" >> $DEBLOG;
                      exit 1;

                      fi
                      fi
                      smb_test.sh - Ende<<

                      Für Korrekturvorschläge oder Hinweise auf bereits erstellte Lösungen um ein SMB-LW zu Überwachen danke ich sehr.


                      Mit freundlichen Grüßen

Content-ID: 152928

Url: https://administrator.de/contentid/152928

Ausgedruckt am: 25.11.2024 um 23:11 Uhr