Viele Administratoren arbeiten mit Shell-Skripts und Cronjobs unter Linux, um Aufgaben oder bestimmte Programmabläufe zu bewältigen. Diese bestehen aus einigen wenigen bis mehreren hundert einzelnen Prozessen und deren Koordination, Synchronisation und richtige Reihenfolge erfordert ein hohes Maß an Aufwand, bei dem mit der Zeit ein ziemlich undurchsichtiger Wildwuchs entstehen kann.
Ein Beispiel soll dies verdeutlichen: Angenommen, in einem einfachen Ablauf sollen "ProgrammA" und "ProgrammB" nacheinander laufen. Das Shell-Skript dazu ist schnell geschrieben:
#!/bin/sh
ProgrammA
ProgrammB
Soweit, so einfach, doch Fehler behandelt dieses Beispiel noch nicht. Damit ProgammB nicht mit falschen Daten arbeitet, muss der Skriptautor verhindern, dass es startet, falls ProgrammA einen Fehler liefert:
#!/bin/sh
ProgrammA
RET=$?
if [ $RET -ne 0 ]
then
echo "Fehler $RET in ProgrammA!"
exit $RET
fi
ProgrammB
RET=$?
if [ $RET -ne 0 ]
then
echo "Fehler $RET in ProgrammB!"
exit $RET
fi
Jetzt muss das Skript ausgiebig getestet werden, denn nicht berücksichtigte Fehler können fatale Folgen haben. Hier taucht ein erstes Problem auf: Die Fehlerbehandlung implementieren zwei Entwickler eventuell etwas unterschiedlich. Das führt dazu, dass die Verständlichkeit des Skripts sinkt. Ist das der Fall, steigen die Kosten, weil die Wartung
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.