
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 cat
die 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_TSBKUP
anstelle 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 grep
einen 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 logrotate
es 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. logrotate
wird 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 logrotate
enthalten aber gute Informationen und hier ist ein guter LinkSo verwalten Sie Protokolldateien mit Logrotate unter Ubuntu 12.10