Ich durfte mich gerade wieder mit einem neuen Monitoringscript beschäftigen. Die Anforderungen sind relativ überschaubar und somit war klar, dass das Script nicht allzuviel Zeit fressen sollte. Natürlich habe ich mich im Script verloren und noch viele kleine Kleinigkeiten eingebaut 🙂 . Den Download zum Script gibt es ganz unten am Ende des Artikels zur Belohnung zum runterscrollen.

Anforderungen

Das Script sollte folgende Anforderungen erfüllen:

  • Abrufen von Webseiteninhalt
  • Vergleichen dieses Inhaltes mit einer bestimmten HASH-Summe
  • Lesbare Ausgabe für das Monitoringsystem (0 oder 1)

Dazu kamen dann noch meine Anforderungen 😎

  • Der Gerät muss gut aussehen
  • Sollte Fehlerabfangen können
  • Fehlende Abhängigkeiten erkennen
  • Sinnvolle Errorausgaben liefern
  • Wumms haben
  • Reguläre lesbare Ausgabe
  • Obligatorische VERBOSE Mode

Naja - das Script ist nun fertig und erfüllt alle Anforderungen 🙄

Parameter

Ich bin einmal so Frech und poste euch einfach mal die Ausgabe der Hilfe

compare_download_hash ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
Dieses Script lädt eine Datei herunter und prüft den md5sum Hashwert dieser Datei. 
Stimmt dieser mit einem gegebenen Wert überein, so gibt das Script eine OK Meldung aus. 
Das Script verwendet die Tools cURL und md5sum. 

Usage : 
compare_download_hash -U <URL> -m <HASH> [-T] <Timeout> [-h] [-v] [-V] [-b] [-W]
       -U Angabe des Downloadlinks 
       -m Angabe des md5sum hashes 
       -T Timeout 
       -h Gibt diese Hilfe aus 
       -v Zeigt die Version an 
       -V Ausführliche Ausgaben 
       -b Optimierte Ausgabe für Überwachungssysteme 0 - OK 1 - !OK X - 
            Have a look at curl EXITCODES 
       -W Wenn es schnell sein muss! 

Standardtimeout des Scriptes ist nach 5 Sekunden. Dieses Script ist Geschwindigkeitsoptimiert! 

Version: 1.0 Release: Aufmerksame Apostel analysieren afrikanische Apfelernten.

Beispiele

Regulärer Aufruf des Scriptes

./compare_download_hash -U www.weichert.it -m 50316dde281c1c14f4712dd40db81f67
OK: Der HASH-Wert stimmt überein.

Für eine "maschinenfreundliche" Ausgabe wird der Parameter -b an den Befehl angehängt.

./compare_download_hash -U www.weichert.it -m 50316dde281c1c14f4712dd40db81f67 -b

Für eine ausführliche Ausgabe verwendet man Parameter -V

./compare_download_hash -U www.weichert.it -m 50316dde281c1c14f4712dd40db81f67 -V
Der Inhalt der Seite "www.weichert.it" wurde in der Datei "check.xml" gespeichert.
Es wurde per md5sum folgender Hashwert gebildet:
    50316dde281c1c14f4712dd40db81f67
Dieser stimmt mit Ihrem Hashwert "50316dde281c1c14f4712dd40db81f67" überein.

Sollte cURL einmal mit einem Fehler zurückkehren bricht das Script die Verarbeitung ab:

./compare_download_hash -U www.diesedomaingibtesnicht.it -m 50316dde281c1c14f4712dd40db81f67
ERROR: cURL EXITCODE: 6.

Mit Parameter -V wird hier auch der EXIT Code von cURL mit einer genaueren Fehlermeldung erklärt.

./compare_download_hash -U www.diesedomaingibtesnicht.it -m 50316dde281c1c14f4712dd40db81f67 -V
cURL konnte das Ziel leider nicht erreichen. Es wurde folgende Ursache erkannt:
ERROR: CURLE_COULDNT_RESOLVE_HOST (6)
Couldn't resolve host. The given remote host was not resolved.

Download

Das Script findet Ihr bei mir auf dem Github Account. Viel Spaß damit. Über Kritik, Verbesserungsvorschläge und vielleicht sogar Lob würde ich mich in den Kommentaren sehr freuen.
Vergleichen von Webseitencontent mit erwarteten Werten.