Unser externes Backup-System basiert darauf, dass ein Mitarbeiter jede Woche abwechselnd das USB-Laufwerk an den Dateiserver anschließt.
Das angeschlossene Laufwerk wird dann (jeden Abend um 22 Uhr) mithilfe einer geplanten Batchdatei, die Robocopy ausführt, mit der Datenpartition auf dem Server synchronisiert. Die USB-Laufwerke selbst sind beide mit Truecrypt verschlüsselt, um unsere Organisation zu schützen, falls eines davon verloren geht oder gestohlen wird.
Das schwache (vom Menschen abhängige) Glied in unserem Backup-System ist der Mitarbeiter, der jede Woche für die Rotation der Laufwerke verantwortlich ist. Manchmal vergisst er dies nicht nur wie vorgeschrieben wöchentlich, sondern über einen Monat lang.
Ich habe bereits eine Protokollierung eingerichtet, die es mir ermöglicht, zu verfolgen, wann die Laufwerke rotiert werden, dank der Antwort auf meine frühere FrageHierWir haben also bereits eine Protokolldatei, die nachverfolgt, welches Laufwerk an einem bestimmten Tag verbunden ist.
Was ich jetzt tun möchte, ist, dass eine automatische E-Mail vom Server (SBS 2003) an den Benutzer gesendet wird, der für die Rotation der Laufwerke verantwortlich ist, an den Chef des Benutzers und an mich selbst (Sysadmin), wenn der Sicherungszeitplan zwei oder mehr Wochen lang nicht eingehalten wird. Outlook 2010 ist derzeit nicht auf dem Server installiert, könnte aber bei Bedarf installiert werden.
Die Daten im Protokoll, die verfolgen, welches Sicherungslaufwerk angeschlossen ist, haben das folgende Format:
Volume in drive V is BACKUP 1
Sat 05/10/2014
22:00:00.77
Volume in drive V is BACKUP 1
Sun 05/11/2014
22:00:00.44
Volume in drive V is BACKUP 1
Mon 05/12/2014
22:00:00.39
Volume in drive V is BACKUP 1
Tue 05/13/2014
22:00:01.50
Hat jemand eine Idee, wie ich das Senden einer Warn-E-Mail automatisieren könnte, wenn dieselbe Nummer des USB-Backup-Laufwerks eine bestimmte Anzahl von Malen hintereinander unten in der Protokolldatei erscheint? Zum Beispiel 14 oder mehr (da dies bedeuten würde, dass die wöchentliche Laufwerksrotation, die der Benutzer hätte durchführen sollen, nun eine ganze Woche überfällig ist).
Ich bin für alle Ideen sehr dankbar!
Antwort1
Das würde funktionieren. Sie müssen den Code zum Senden der E-Mail in die if-Bedingung einfügen und LOGFILE in den Pfad Ihrer Protokolldatei ändern:
#!/bin/bash
LOGFILE="logtest"
COUNT=`tail -n16 $LOGFILE | grep "Volume in" | uniq -c | cut -c0-7 | tail -n1`
echo "Last tape repeated $((COUNT)) times"
if [ $COUNT -gt 3 ]; then
echo "Sending email..."
mutt -s"FATAL: Missing tape rotation" [email protected] < /dev/null
fi