Prof. Franz Schweiggert Abteilung Angewandte Informationsverarbeitung 29. Oktober 2003
Christian Ehrhardt Blatt 2


Uni Logo



Unix-basierte Implementierung kleiner Datenbanken (WS 03/04)


Abgabetermin 6.11.2003

Domains (5 Punkte)

Schreibt ein kleines Shellskript, das alle de-Domains auflistet, die im Moment in Verwendung sind und die aus nur 2 Buchstaben bestehen. Ob eine bestimmte Domain in Verwendung ist, läßt sich (für die Zwecke dieses Übungsblattes) anhand der Ausgabe des Kommandos ``nslookup -q=any xy.de'' herausfinden. Dabei ist xy.de natürlich die fragliche Domain. Das Skript soll nur die Domainnamen und nicht die übrige Ausgabe von nslookup auf den Bildschirm ausgeben.

Überwachung (5 Punkte)

Gegeben sei ein Programm, das eigentlich ewig laufen soll. Leider hat dieses Programm die unangenehme Eigenschaft, immer mal wieder abzustürzen. Um das Programm nicht jedes Mal von Hand neu starten zu müssen, soll ein Shellskript geschrieben werden, das das Programm automatisch eine Sekunde nachdem es sich beendet hat neu startet. Allerdings gibt es dabei ein Problem: Wenn das Programm seit dem letzten Start weniger als eine Sekunde lief, dann ist irgendwas ziemlich schief gegangen. In diesem Fall soll das Programm nicht neu gestartet werden, um eine Amoklauf zu verhindern. Statt dessen, soll eine Mail an den Autor des Skripts verschickt werden, daß das Programm nicht wieder gestartet werden konnte. Die Zeit, die ein Programm läuft, kann mit dem Programm /usr/bin/time gemessen werden. Die gemessene Zeit wird auf die stderr geschrieben. Auch hier soll die Ausgabe von time natürlich nicht sichtbar sein. Verwendet für das neu zu startende Programm z.B. das folgende Shellskript:

touch loop.stat
case `cat loop.stat` in
*0) echo "1" >loop.stat;; *1) echo "2" >loop.stat; sleep 2;;
*2) echo "3" >loop.stat; sleep 3;; *3) echo "4" >loop.stat; sleep 11;;
*) echo "0" >loop.stat; sleep 10;;
esac



Christian Ehrhardt 2003-10-29