Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Shell Script um HTTP / Webseiten Monitoring durchzuführen auf FritzBox 7590

NeXus6

Premium
Registriert
3. Dezember 2010
Beiträge
66
Reaktionspunkte
19
Punkte
28
Bestes Forum,

habe dieses Shell Script gefunden und würde es gerne auf meiner FritzBox 7590 laufen lassen, um diverese Webseiten zu monitoren.

Bash:
#!/bin/bash
# Website status checker. by ET (etcs.me)

WORKSPACE=/scripts/isOnline
# list of websites. each website in new line. leave an empty line in the end.
LISTFILE=$WORKSPACE/websites.lst
# Send mail in case of failure to. leave an empty line in the end.
EMAILLISTFILE=$WORKSPACE/emails.lst
# Temporary dir
TEMPDIR=$WORKSPACE/cache

# `Quiet` is true when in crontab; show output when it's run manually from shell.
# Set THIS_IS_CRON=1 in the beginning of your crontab -e.
# else you will get the output to your email every time
if [ -n "$THIS_IS_CRON" ]; then QUIET=true; else QUIET=false; fi

function test {
  response=$(curl -L --write-out %{http_code} --silent --output /dev/null $1)
  filename=$( echo $1 | cut -f1 -d"/" )
  if [ "$QUIET" = false ] ; then echo -n "$p "; fi

  if [ $response -eq 200 ] ; then
    # website working
    if [ "$QUIET" = false ] ; then
      echo -n "$response "; echo -e "\e[32m[ok]\e[0m"
    fi
    # remove .temp file if exist
    if [ -f $TEMPDIR/$filename ]; then rm -f $TEMPDIR/$filename; fi
  else
    # website down
    if [ "$QUIET" = false ] ; then echo -n "$response "; echo -e "\e[31m[DOWN]\e[0m"; fi
    if [ ! -f $TEMPDIR/$filename ]; then
        while read e; do
            # using mailx command
            echo "$p WEBSITE DOWN" | mailx -s "$1 WEBSITE DOWN ( $response )" $e
            # using mail command
            #mail -s "$p WEBSITE DOWN" "$EMAIL"
        done < $EMAILLISTFILE
        echo > $TEMPDIR/$filename
    fi
  fi
}

# main loop
while read p; do
  test $p
done < $LISTFILE
Nachdem ich die Pfade (/var/mod/home/Superblond) entsprechend angepasst habe, läuft das Script leider trotzdem so nicht auf der FB.
Rechte zum Ausführen & Lesen sind auf Datei und Orderebene gesetzt.
Fehlermeldungen:
Code:
root@fritz:/var/mod/home/Superblond# sh checker.sh
: not found line 3:
: not found line 5:
: not found line 12:
checker.sh: line 18: syntax error: unexpected word
Kann das jemand anpassen, modifizieren, so das es auf Fritz-Umgebung läuft?

Besten DAnk & Grüße
SB
 
Zuletzt bearbeitet von einem Moderator:
In der 1. Zeile das "ba" löschen. Dann die Pfade im Script anpassen. Und sicherstellen dass die genutzten Programme installiert sind
 
Beste Dank!
Das mit dem Nachinstallieren hatte ich natürlich verdrängt :-/
Das ist leider auf der FritBox so einfach (apt install ...), aufgrund fehlender programme & des komprimierten Dateisystems, nicht möglich.

Versuche dieses Script ggf. mit den Boardmitteln zu realisieren... oder
vielleicht hat jemand ein ähnliches Script mit den fogenden Funktionen in PHP geschrieben?
- ein paar Webseiten (HTTP/S) aufrufen
- Antwortzeit, Antwortcode entgegennehmen
- Bei bsp. 404 , oder langer Antwortzeit eine Datei mit Datum+Uhrzeit speichern, ggf. mailen

Danke & Grüße
SB
 
Das Programm das dein Script dafür nimmt gibt es auch in Freetz
Für Mails nimmst du was es gibt, zB "mail" oder "mailer" von avm
 
Zurück
Oben