Mittels Batch-Script Exchange-Logs sammeln und archivieren
Ich möchte hier eine recht einfache Lösung für ein Log-Archiving vorstellen.
Jeder kennt das Problem, dass die meisten Dienste LOG-Dateien im Textformat erzeugen und davon mehr als genug.
Manchmal ist es sinnvoll, diese zu archivieren, falls es zu gerichtlichen Auseinandersetzungen kommt oder aus sonstigem wichtigen Grund der Nachweis über eine erhaltene oder nicht erhaltene Email geführt werden muss.
Dazu dient folgendes Script:
Kurz zur Methodik:
Archivdateiname: Aktuelles Jahr.7z
Auftragsliste: dateien.txt
Wenn die entsprechende Archivdatei noch nicht existiert, wird sie erstellt und sukzessive erweitert.
Die Kompressionsrate liegt bei 1% - 10% was einen nicht unerheblichen Vorteil in Speicherplatzverbrauch bedeutet.
Was jetzt, wenn man mal etwas braucht?
Hierzu nutze ich dann das Programm DocFetcher (ist kostenlos!). Ich kann mir im Falle unklarer Informationen somit schnell alle Logdateien, nach dem ich sie entpackt habe
über die Struktur indizieren.
Um die richtigen Protokoll-Snippets zu bekommen reicht dann Excel oder LibreOffice Calc, um die entsprechend lokalisierte Datei zu sortieren.
Jeder kennt das Problem, dass die meisten Dienste LOG-Dateien im Textformat erzeugen und davon mehr als genug.
Manchmal ist es sinnvoll, diese zu archivieren, falls es zu gerichtlichen Auseinandersetzungen kommt oder aus sonstigem wichtigen Grund der Nachweis über eine erhaltene oder nicht erhaltene Email geführt werden muss.
Dazu dient folgendes Script:
REM @ECHO OFF
@ECHO.
REM *** Datumsberechnungen: *******************************************
REM * Das aktuelle Systemdatum wird zerlegt in Tag, Monat, Jahr.
REM * Von der Jahresvariable wird 1 abgezogen und das Ergebnis in %Vorjahr% gespeichert
REM * %Vorjahr% wird als Namensteil des Archivs verwendet und zum Suchen von Logdateien *2015*.log
REM * die in C:\Logs gespeichert sind.
REM *******************************************************************
REM @ECHO Date is %Date%
REM SET DayOfWeek=%Date:~0,3%
SET Day=%Date:~,2%
SET Month=%Date:~3,2%
SET Year=%Date:~6,4%
SET Today=%Date:~6,4%-%Date:~3,2%-%Date:~,2%
SET /a Vorjahr=%Year%
SET /a Vormonat=%Month%-1
REM @ECHO Year is %Year%, Month is %Month%, Day is %Day%, DayOfWeek is %DayOfWeek%
REM @ECHO Today is %Today%
REM @ECHO %Vorjahr%
REM @ECHO.
REM *** Logfiles einsammeln und unter C:\Logs ablegen (VERSCHIEBEN!)
@ECHO *** Exchange-Logfiles verschieben nach C:\Logs ***
c:
cd "\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs"
for /f "tokens=*" %%f in ('dir *.log /a:-D /s /b') do move "%%f" C:\Logs\ >NUL
cd \Log-Management
REM *** Liste zu archivierender Dateien erstellen
@ECHO *** Liste zu archivierender Dateien erstellen ***
REM dir /s /b /A:-D C:\Logs\*%Year%0%Vormonat%* > %CD%\dateien.txt
dir /s /b /A:-D C:\Logs\*.* > %CD%\dateien.txt
REM *** Wenn keine zu archivierenden Dateien vorhanden sind, gehe direkt zum Ende
for /f %%i in ("%CD%\dateien.txt") do set size=%%~zi
if %size% equ 0 GOTO Ende
REM sonst *** Archivprogramm aufrufen ***
@ECHO *** Packprogramm aufrufen; Archiv wird in C:\Log-Archiv erstellt ***
%CD%\7za.exe a -t7z -mx9 -mmt1 c:\Log-Archiv\%Vorjahr%.7z @%CD%\dateien.txt
@ECHO *** archivierte Originaldateien werden gelöscht ***
for /F "tokens=*" %%A in (%CD%\dateien.txt) do del "%%A"
:Ende
del %CD%\dateien.txt
@ECHO *** Fertig ***
Kurz zur Methodik:
- Es werden im Programmverzeichnis und der entsprechenden Unterstruktur des Exchangeservers (hier ein EX2010) alle Dateien gesucht, die auf *.log enden. Diese werden verschoben nach c:\logs. Dateien, die durch einen Dienst gesperrt sind, bleiben davon unberührt.
- Der Inhalt des Verzeichnisses C:\logs wird in eine Datei dateien.txt geschrieben, die im Scriptverzeichnis erstellt wird.
- Im Scriptverzeichnis liegt die Kommandozeilenversion des Packers 7zip (7za.exe). Diese wird mit entsprechenden Optionen aufgerufen.
Archivdateiname: Aktuelles Jahr.7z
Auftragsliste: dateien.txt
Wenn die entsprechende Archivdatei noch nicht existiert, wird sie erstellt und sukzessive erweitert.
Die Kompressionsrate liegt bei 1% - 10% was einen nicht unerheblichen Vorteil in Speicherplatzverbrauch bedeutet.
Was jetzt, wenn man mal etwas braucht?
Hierzu nutze ich dann das Programm DocFetcher (ist kostenlos!). Ich kann mir im Falle unklarer Informationen somit schnell alle Logdateien, nach dem ich sie entpackt habe
über die Struktur indizieren.
Um die richtigen Protokoll-Snippets zu bekommen reicht dann Excel oder LibreOffice Calc, um die entsprechend lokalisierte Datei zu sortieren.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 345586
Url: https://administrator.de/tutorial/mittels-batch-script-exchange-logs-sammeln-und-archivieren-345586.html
Ausgedruckt am: 03.01.2025 um 07:01 Uhr