Skript zum Senden einer E-Mail bei Erfolg oder Misserfolg

Skript zum Senden einer E-Mail bei Erfolg oder Misserfolg

Mein Oracle-Backup sendet eine E-Mail mit der Benachrichtigung, dass das Backup abgeschlossen ist und erfolgreich war oder fehlgeschlagen ist, je nachdem, ob ein Muster gefunden wurde. Unsere Backup-Protokolle werden sehr groß – 14 MB. Da diese Datei größer als 10 MB ist, werden diese Nachrichten von den Exchange-Servern gelöscht.

Bitte helfen Sie mir, dieses Problem zu beheben. Das heißt, dieser Vorgang muss lediglich eine E-Mail mit den Fehlercodes „ORA-“ oder „RMAN-“ (bei einem Fehler) oder nur eine E-Mail senden, die Erfolg oder Misserfolg anzeigt.

HINWEIS: Dies ist nur ein Teil des Codes. Lassen Sie es mich wissen, wenn Sie Fragen haben.

#### Check for RMAN/ORA Errors and notify accordingly

RMANERROR=`egrep "ORA-|RMAN-" $RMAN_LOG_TSBKUP`
RMANWARN=`egrep "ORA-|RMAN-" $RMAN_LOG_TSBKUP|egrep -vE "$EGREP_EXCLUDE"`


if [ -z "$RMANERROR" ]
then
   echo "No Errors"
   cat $RMAN_LOG_TSBKUP |mailx -s "SUCCESS - DW_TS_BACKUP Complete" `cat $EMAIL_SUCCESS_DIST`
elif [ -z "$RMANWARN" ]
then
   echo "No Errors, but Warnings"
   cat $RMAN_LOG_TSBKUP |mailx -s "SUCCESS (with ignorable WARNINGS) - DW_TS_BACKUP Complete" `cat $EMAIL_SUCCESS_DIST`
else
   echo "Errors Found !!!!"
   mailx -s "FAILURE - DW_TS_BACKUP Complete" `cat $EMAIL_FAIL_DIST`
fi
}

Antwort1

Ich sehe zwei Möglichkeiten:

1 - Anstatt catdie gesamte Protokolldatei in die E-Mail einzufügen, können Sie nur neu angehängte Zeilen einfügen, indem Sie tail -n x $RMAN_LOG_TSBKUPanstelle von verwenden cat $RMAN_LOG_TSBKUP, wobei x die Anzahl der Zeilen vom Ende der Datei ist, die in die E-Mail aufgenommen werden sollen. Wenn Sie ungefähr wissen, wie viele Zeilen das Backup zum Protokoll hinzufügen wird, können Sie x verfeinern und die Einbeziehung alter Protokolldaten vermeiden. Oder Sie können grepeinen Protokollkopf oder ein Datum angeben, das bleibt Ihnen überlassen.

2 - Implementieren Sie die Protokollversionierung mit logrotate. Erstellen Sie eine grundlegende Konfigurationsdatei, legen Sie sie ab /etc/logrotate.d/und logrotatees kümmert sich um alles andere für Sie. Sie können die Protokolle so konfigurieren, dass sie nach einem Zeitplan oder nach Größe rotiert werden. logrotatewird normalerweise als täglicher Cronjob von ausgeführt /etc/cron.daily/logrotate. Dies ist wahrscheinlich die beste Option, da Sie damit Protokolle auf überschaubare Weise speichern können. Eine grundlegende Konfiguration könnte die folgenden Anweisungen enthalten.

 /var/log/oracle-backup.log {
  size 1M
  rotate 12
  monthly
  compress
  missingok
  notifempty
}

Die Richtlinien sind ziemlich selbsterklärend, man logrotateenthalten aber gute Informationen und hier ist ein guter LinkSo verwalten Sie Protokolldateien mit Logrotate unter Ubuntu 12.10

verwandte Informationen