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