NTBackup – Logdateien und Logrotation

Speicherung NTBackup (Win200x) Logdateien

Die NTBackup-Logdateien werden bei Win200x NTBackup in folgendes Verzeichnis geschrieben:

%userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data

Wenn der Benutzer „backup“ heißt z.B. in diesen Pfad:

C:\Dokumente und Einstellungen\backup\Lokale Einstellungen\Anwendungsdaten\Microsoft\
Windows NT\NTBackup\data

Es werden in diesem Verzeichnis lediglich Dateien „backup01.log“…“backup10.log“ angelegt. Die Dateien werden dann rotiert und dabei immer wieder überschrieben.

 

Umkopieren und Aufheben der Logs für n Tage (ordentliche Logrotation)

Man kann die Logdateien skriptgesteuert kopieren, so dass man die Historie über n Tage Backup-Logs nachvollziehen kann.

Das Skript auf dieser Seite kopiert die NTBackup-Logs und setzt einen Dateinamen mit Datum/Uhrzeit und der Backuplog-Nummer wie z.B.:

BackupLog_20060213_05_43[07].log
BackupLog_20060214_05_52[08].log
BackupLog_20060215_06_01[09].log
BackupLog_20060216_05_48[10].log
BackupLog_20060217_05_50[01].log

Anschließend löscht es alte Logdateien, z.B. alle Logs, die älter als 30 Tage sind.

Dazu wird ein „delold“-Befehl benötigt, mit dessen Hilfe alte Dateien gelöscht werden können (z.B. im Backup-Verzeichnis ablegen):

delold.exe Befehl zum Löschen n Tage alter Dateien


backup_logrotation.bat

Dieses Skript bitte nach dem NTBackup Sicherungs-Skript aufrufen.

Version für Windows 2003. Bei Win2000 bitte Hinweise beachten/ die Stelle anpassen, an der aus dem „dir“-Befehl die Log-Nummer extrahiert wird.

@echo off
setlocal

rem ##########################################
rem # NTBackup-Logrotation (v 2007012601) #
rem # www.netzprisma.de #
rem ##########################################

rem Benutzername des Backup-Users und Log-"Endlager"
set user=backup
set logs=C:\Admin\Backup\log

rem alte Logdateien löschen - "delold" Befehl wird dazu benötigt
rem delold -L=31 -Q %logs%\BackupLog*.log

rem Pfad zu den NTBackup-Logs (in Anführungszeichen wegen Leerstellen)
set bkpdata=C:\Dokumente und Einstellungen\%user%\Lokale Einstellungen\^
Anwendungsdaten\Microsoft\Windows NT\NTBackup\data\
set bkpdata="%bkpdata%"

for /f "Skip=4 Tokens=*" %%i in ('dir /od /tw /4 %bkpdata%backup*.log') do ^
set line=%%i&call :parse
endlocal
goto end
:parse
if not "%line:~2,1%"=="." goto end
FOR /F "Tokens=1-5 Delims=./: " %%j in ('@echo %line%') do ^
call :parse1 %%j %%k %%l %%m %%n
goto end

:parse1

rem Backup-Log Nummer 01,02,...,10
rem *** Windows 2000 ***
rem set my_extension=%line:~45,2%
rem *** Windows 2003 ***
set my_extension=%line:~42,2%

set name=BackupLog_%3%2%1_%4_%5[%my_extension%].log

If exist %logs%\%name% goto end

rem Datei noch nicht vorhanden -> umkopieren
copy %bkpdata%\backup%my_extension%.log %logs%\%name%

:end