Einen Makel den es (noch) in BackupAssist ER gibt ist eine fehlende Möglichkeit, bei einem verpassten Startzeitpunkt den oder die Backup-Job(s) nachholen zu lassen.
Wird ein geplanter Zeitpunkt verpasst wartet das Programm bis zum nächsten geplanten Start der Jobs und führt erst dann wieder eine Datensicherung durch. Ist das System zu diesem Zeitpunkt wieder ausgeschaltet kann es vorkommen, das die nächste Sicherung erst in relativ weiter Zukunft falls überhaupt stattfindet.
Bei Servern, die in der Regel dauerhaft laufen, geschieht dies eher selten, außer zum geplanten Zeitpunkt ist das System z.B. wegen der Installation von Updates, einer Wartung oder ähnlichem gerade Offline.
Bei anderen Systemen wie PCs und Notebooks, die nicht im Dauerbetrieb sind, stellt sich die Sache etwas anders da. Ein Workaround kann darin bestehen, den geplanten Startzeitpunkt für die Datensicherung in die Nacht zu verlegen und das System per Wake-on-LAN (WoL) zu starten. Für PCs ist das durchaus machbar und praktikabel, bei Notebooks funktioniert das oft nicht, außer sie befinden sich gerade in der Dockingstation und WoL wird unterstützt. Oft ist letzteres bei Dockingstations die mittels USB verbunden werden allerdings nicht der Fall.
Eine weitere Möglichkeit ist den Startzeitpunkt auf eine Uhrzeit zu setzen, an dem das System sicher nicht läuft und dann mittels Windows-Aufgabe die Jobs zu starten bzw. so schnell wie möglich nach einem verpassten Startzeitpunkt nachzuholen.
Der Befehl hierzu lautet:
"C:\Program Files (x86)\BackupAssist ER V1\BackupAssistManualLauncher.exe" <Job-Nr> -u -d
Statt “-u -d” kann auch “-i” verwendet werden:
Der relevante Punkt bei der Konfiguration der Aufgabe ist dieser hier:
Mittels Batch-Skript, das z.B. als Aufgabe ausgeführt wird, lässt sich prüfen wann die letzte Datensicherung stattgefunden hat und bei Überschreiten eines Zeitraums dann die Datensicherung starten:
@echo off rem Konfiguration rem 1 Stunde rem set Period=3600000 rem 12 Stunden rem set Period=43200000 rem 24 Stunden / 1 Tag rem set Period=86400000 rem 48 Stunden / 2 Tage set Period=172800000 rem 3 Tage rem set Period=259200000 rem 7 Tagen rem set Period=604800000 rem Das Ereignisprotokoll auswerten wevtutil qe Application /q:"*[System[Provider[@Name='BackupAssist'] and (EventID=5632) and TimeCreated[timediff(@SystemTime) <= %Period%]]]" /c:1 /f:text /rd:true | find "Date" rem Wenn "Date" nicht in der Ausgabe gefunden wurde, d.h. keine Datensicherung im definierten Zeitraum erfolgt ist, dann folgenden Befehl ausfuehren if %errorlevel%==1 ( "C:\Program Files (x86)\BackupAssist ER V1\BackupAssistManualLauncher.exe" 1 -u -d "C:\Program Files (x86)\BackupAssist ER V1\BackupAssistManualLauncher.exe" 2 -u -d )
In diesem Beispiel wird spätestens nachdem zwei Tage lang keine Datensicherung gelaufen ist, die beiden Backup-Jobs (Backup-to-Disk-to-Cloud) gestartet. Nachfolgend ein paar Erläuterungen zu diesem Skript:
Mit Hilfe des Befehls “wevtutil” kann das Windows-Ereignisprotokoll abgefragt werden. Möchte man nun nach der Quelle “BackupAssist” und der EventID “5632” suchen, sieht der Befehl und dessen Ausgabe so aus:
C:\Users\Andy>wevtutil qe Application /q:"*[System[Provider[@Name='BackupAssist'] and (EventID=5632)]]" /c:1 /f:text /rd:true Event[0]: Log Name: Application Source: BackupAssist Date: 2021-08-12T12:03:37.0330000Z Event ID: 5632 Task: N/A Level: Informationen Opcode: Info Keyword: Klassisch User: N/A User Name: N/A Computer: w10-cloud-backup Description: Starten des Jobs "Job (1) - S3-kompatible Cloud-Speicherung" zur geplanten Uhrzeit: 13.08.2021 07:05 Job-Verfahren: Cloud Ziel: S3-kompatibles Bucket
Es wird das Ereignisprotokoll “Anwendung” (“Application”) durchsucht, die eigentliche Abfrage befindet sich ab “/q:”, es wird mit “/c:1” nur nach einem Ereignis gesucht, die Ausgabe erfolgt mit “/f:text” als Text und die Reihenfolge soll von neuestem zu ältesten Eintrag sein (“/rd:true”).
Wie man oben erkennen kann, gibt es “Date:” nur, wenn in dem definierten Zeitraum ein Ereignis gefunden wurde, andernfalls bleibt die Ausgabe leer. Da “wevtutil” keinen Rückgabewert (Errorlevel) liefert, wird die Ausgabe mit “find” nach “Date” durchsucht.
Wird “Date” gefunden geschieht nichts weiter, wird es allerdings nicht gefunden, werden die Backup-Jobs ausgeführt. “BackupAssistManualLauncher.exe” setzt die Backup-Jobs dabei in die Warteschlange, die der Reihe nach abgearbeitet wird, daher ist es kein Problem mehrmals diesen Befehl hintereinander mit unterschiedlichen Job-Nummern auszuführen.
Tipp: Um die richtige Syntax für die Abfrage (Query, “/q:”) zu ermitteln, kann die Ereignisanzeige von Windows verwendet werden. Klickt man dort auf “Aktuelles Protokoll filtern” kann man die gewünschten Werte einstellen und auf der Registerkarte “XML” die Abfrage einsehen:
Quellen
Mittels Batch/CMD:
SYSTEM CENTER CONFIGURATION MANAGER NOTES – Useful WEvtUtil commands
Via PowerShell:
Petri – How To Search the Windows Event Log with PowerShell
WebbTechSolutions – Using PowerShell To Search The Event Log
Verheiratet, Vater von zwei Kindern, eines an der Hand, eines im Herzen. Schon immer Technik-Freund, seit 2001 in der IT tätig und seit über 10 Jahren begeisterter Blogger. Mit meiner Firma IT-Service Weber kümmern wir uns um alle IT-Belange von gewerblichen Kunden und unterstützen zusätzlich sowohl Partner als auch Kollegen.
Interessant, Andy 😀👍