Raketenwilli: Ausflug: Test mit Shell-Skript und wget. z.B. für cronjob

Beitrag lesen

#!/bin/bash

SERVER=${2}
#SERVER='www.example.com/foo?bar#baz';
SERVER=$(echo -n $SERVER | sed -e 's/[/?&#].*$//');

PROTO=${1};
if [ $PROTO != 'https' -a $PROTO != 'http' ]; then
   echo "FEHLER: Falsches Protokoll."
   exit 2;
fi
#PROTO='https';

# echo $(wget -d --spider ${PROTO}://${SERVER}/ 2>&1 | grep 'HTTP.*[0-9][0-9][0-9]');
t=$(wget -d --spider ${PROTO}://${SERVER} 2>&1 | grep 'HTTP.*[0-9][0-9][0-9]' | wc -l);
if [ $t -eq 1 ]; then
    echo "Erfolg: Der Server \"${SERVER}\" ist via \"${PROTO}\" erreichbar.";
    exit 0;
else
    echo "FEHLER: Der Server \"${SERVER}\" ist via \"${PROTO}\" NICHT erreichbar.";
    exit 1;
fi

Aufruf z.B. mit

./test.sh https 'www.example.com/foo&bar=baz#tok'

Derlei könnte man z.B. als Cronjob ausführen und 'wegloggen' oder, im Falle eines Misserfolges, per Mail senden... Freilich bietet das noch viele schöne Möglichkeiten und SOLLS (deshalb habe ich das als „bad“ markiert) zum Anpassen, Verbessern und Basteln.

So könnte man z.B. den Statuscode überprüfen. Hat man vergessen, seinen Hoster zu bezahlen kommt da z.B. oft 404 oder 403. Derzeit wird bei einem beliebigen Statuscode (siehe: grep 'HTTP.*[0-9][0-9][0-9]' | wc -l) die positive Antwort gegeben.

Man könnte auch das Putzen des Servernamens weglassen… e.t.c,