Wie kann ich cron zur E-Mail-Berichtsprüfung machen, wenn etwas zu berichten ist?

1584
user398140

Ich stelle eine tägliche Cron-Jobprüfung ein, um zu überprüfen, ob Dateien sich am Vortag geändert haben. Da diese Dateien nicht geändert werden sollen, bekomme ich einen leeren Bericht. Wie kann ich es ändern, um E-Mails zu senden, verhindern Sie dies.

das ist meine Cron-Joblinie

1 0 * * * root /sbin/aureport -k -ts yesterday 00:00:00 -te yesterday 23:59:59 

und dies ist eine E-Mail, die ich normalerweise bekomme

Key Report =============================================== # date time key success exe auid event =============================================== <no events of interest were found> 
0

2 Antworten auf die Frage

0
Antony

Es wird empfohlen, ein Skript von Cron auszuführen, um festzustellen, ob sich die Überwachungsprotokolldatei geändert hat.

also ruft dein cron dein script auf

01 00 * * * sh /bin/script.sh 

Dieses Skript namens "script.sh" ähnelt dem folgenden im Verzeichnis / bin /

Alternative Antwort

 #!bin/bash /sbin/aureport -k -ts yesterday 00:00:00 -te yesterday 23:59:59 > /dev/shm/auditcheck.log  if [ -z "$(grep "no events of interest were found" /dev/shm/auditcheck.log)" ]; then /sbin/aureport -k -ts yesterday 00:00:00 -te yesterday 23:59:59 else > /dev/null 2>&1 fi 

Dieses bearbeitete / alternative Skript speichert die aureport-Ausgabe und greift dann zur Ausgabe des Satzes ohne Ereignisse mit -z string auf True, wenn die Länge der Zeichenfolge Null ist. Wenn der Satz "Es wurden keine interessanten Ereignisse gefunden wurden" nicht vorhanden ist, führen Sie Ihren Prüfbericht aus. Ansonsten leiten Sie die Ausgabe Ihres Programms nach / dev / null um. Schließen Sie sowohl den Standardfehler als auch den Standardausgang ein.

ja, aber die Datei /var/log/audit/audit.log ändert sich ständig mit einigen Einträgen, die für diesen Aureport nicht relevant sind, der nur für bestimmte Zwecke prüft. Ich frage mich, ob wir die Ausgabe ausführen könnten, zuerst die Ausgabe erfassen und die Ausgabe überprüfen enthält String und wenn ja, dann drucken? user398140 vor 9 Jahren 0
@ user398140 geänderte Antwort basierend auf Ihrem Feedback-Kommentar Antony vor 9 Jahren 0
0
dxdc

Vielleicht ein einfacherer, modifizierter Ansatz, der immer noch in einer einzigen Cron-Zeile ausgeführt werden kann (/etc/cron.d/audit-report):

1 0 * * * root /sbin/aureport -k -ts yesterday 00:00:00 -te yesterday 23:59:59 | /bin/grep -q "^<no events of interest were found>" || /sbin/aureport -k -ts yesterday 00:00:00 -te yesterday