SuperX

KontaktMail für InfosSuchenLogin

Ausführungsskript inkl. Mailversand

Folgendes Skript führt Kitchen aus, schreibt die Ausgabe in eine Logdatei und sendet bei fehlerhafter Ausführung eine Mail mit der Logdatei im Anhang. Das Beispiel gilt für Ubuntu Linux mit dem Mailclient "s-nail".

#!/bin/bash
. ./KETTLE_ENV
JOB_PFAD="$MYJOBS_PFAD/etl/jobmonitor"
JOB_FILE="jobmonitor_logausgabe"

$KETTLE_PFAD/kitchen.sh /file=$JOB_PFAD/$JOB_FILE.kjb /norep >$JOB_PFAD/$JOB_FILE.log 2>&1

if "0" -ne "$?"
then
# Mailversand
echo "Mail wird versandt."
echo "Logfile im Anhang." | s-nail -s "Kettle-Job $JOB_FILE.kjb ist fehlgeschlagen!" -a "$JOB_PFAD/$JOB_FILE.log" test@mailserver.de
else
echo "Job lief ohne Fehler."
fi

Zunächst wird KETTLE_PFAD gesetzt, also der Ort, wo Kettle installiert ist. Dann werden der Jobpfad sowie -name übergeben.

Zum Ausführen des Kettle-Jobs durch Kitchen wird im Kettle-Verzeichnis unter Linux kitchen.sh ausgeführt. Über die Option -file werden der Dateipfad und -name übergeben. Die Ausgabe wird in eine Logdatei geschrieben.

$KETTLE_PFAD/kitchen.sh /file=$JOB_PFAD/$JOB_FILE.kjb /norep >$JOB_PFAD/$JOB_FILE.log 2>&1

Abschließend erfolt eine Auswertung des Returncodes. Falls dieser ungleich 0 ist, also einen Fehler jeglicher Art kennzeichnet, wird eine Mail inklusive Logdatei versandt.

if "0" -ne "$?"
then
# Mailversand
echo "Mail wird versandt."
echo "Logfile im Anhang." | s-nail -s "Kettle-Job $JOB_FILE.kjb ist fehlgeschlagen!" -a "$JOB_PFAD/$JOB_FILE.log" test@mailserver.de
else
echo "Job lief ohne Fehler."
fi

Achtung:
Kitchen versteht als Parameter-Präfix sowohl "-" als auch "/", also z.B. "-file:..." und "/file:...". Man könnte auch "=" statt ":" als Trenner nehmen. Aber in einer Publikation von Matt Casters et al. (2010, S.323) werden "/" und ":" empfohlen, die machen unter Windows/DOS weniger Probleme.