volker81 Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 Hi. Folgendes Szenario: 2003Server, Txt-Logfiles, jeden eine Datei á ~250MB. Aktueller Monat soll vorhanden bleiben, Vormonat soll automatisch komprimiert (mit 2k3 Bordmitteln), und die Ausgangsdateien danach gelöscht werden. Ist ein Live-System im Konzernnetz, daher sehr ungern Third-Party-Software oder umständliche Softwareinstallationen. Wie würdet ihr sowas realisieren? Bräuchte mal paar Denkanstöße. Gruß, Volker Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thombo Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 Über eine Batch die per Geplanten Task ausgeführt wird. Die ältesten Logs löschen, die 2. ältesten komprimieren (der Befehl heisst "compact") und mit den neuesten nichts machen :-) Alles mit Boardmitteln. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
volker81 Geschrieben 10. November 2009 Autor Teilen Geschrieben 10. November 2009 Gelöscht werden darf nur, was bereits komprimiert ist. Hat "compact" den gleichen komprimierungsgrad wie .zip bei TXT-Files? Ist Batch in der Lage so ein "komplexes" Konstrukt abzubilden? Quasi alle Dateien zu selektieren die älter als 31 Tage sind. Sich diese zu merken. Diese zu komprimieren mit Namensgebung zB 200910.zip die alten danach zu löschen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thombo Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 Wie liegen diese Dateien vor? Welchen Namen haben die, liegen alle im selben Ordner? Wann soll was mit welchen Dateien passieren? (also gaaaanz genau) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
volker81 Geschrieben 10. November 2009 Autor Teilen Geschrieben 10. November 2009 Die Dateien liegen alle in einem Ordner. Jeden Tag wird dort eine Logfile mit dem Namen "yyyymmdd.log" (bsp 20091110.log) angelegt. Die Dateien werden bis 2359Uhr geschrieben, danach kommt eine neue fürn Folgetag. BSP 02.11.2009 23:59 719.890.625 20091102.log 03.11.2009 23:59 392.419.256 20091103.log 04.11.2009 23:59 530.601.034 20091104.log 05.11.2009 23:59 636.745.180 20091105.log 06.11.2009 23:59 753.035.757 20091106.log 07.11.2009 23:59 663.658.023 20091107.log 08.11.2009 23:59 380.439.807 20091108.log 09.11.2009 23:59 428.290.967 20091109.log 10.11.2009 16:57 462.132.918 20091110.log Ab dem nächsten Monat, in meinem Fall DEZ09, sollen alle Dateien aus dem Monat NOV09 in ein ZIP namens 200911.zip geschrieben werden und die Ausgangsdateien gelöscht werden. Und Anfang JAN10 dann die Dateien aus DEZ09 ... usw. Und das ganze möglichst automatisiert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Thombo Geschrieben 10. November 2009 Teilen Geschrieben 10. November 2009 Hallo nochmal, ich muss mich ein wenig verbessern: compact aktiviert nur die NTFS Komprimierung. "Compress" aus den Server 2003 Ressource Kit Tools kann auch packen. Sind die erlaubt oder vielleicht schon auf dem Server installiert? Bis auf das packen funktioniert das hier: @echo off REM Am sinnvollsten diese CMD immer am ersten des Monats durch den Taskplaner laufen lassen..... REM Aktuellen Monat suchen set AktMonat=%date:~3,2% set AktJahr=%date:~6,4% REM Vormonat ermitteln if %AktMonat%==01 set Vormonat=12 if %AktMonat%==02 set Vormonat=01 if %AktMonat%==03 set Vormonat=02 if %AktMonat%==04 set Vormonat=03 if %AktMonat%==05 set Vormonat=04 if %AktMonat%==06 set Vormonat=05 if %AktMonat%==07 set Vormonat=06 if %AktMonat%==08 set Vormonat=07 if %AktMonat%==09 set Vormonat=08 if %AktMonat%==10 set Vormonat=09 if %AktMonat%==11 set Vormonat=10 if %AktMonat%==12 set Vormonat=11 REM Jetzt die eigentliche Arbeit REM für jede gefundene Logdatei einmal durch sub1 'gehen' for /f %%i in ('dir /b *.log') do call :sub1 %%i REM Anschließend gehts hier weiter, ich suche noch n tool um den Ordner dann zu einer Datei zu packen Pfad\zum\Komprimierungsprogramm\packe.exe /quellordner %jahr%%vormonat% /zieldatei.zip REM Ordner löschen rd /S /Q %jahr%%vormonat% goto ende REM ########################################################################## REM AB HIER SUBROUTINEN :sub1 set Datei=%1 set Monat=%DATEI:~4,2% REM Dateien aus anderen als dem Vormonat interessieren nicht, dann schleife verlassen if not %vormonat%==%Monat% goto:eof set Jahr=%DATEI:~,4% set Tag=%DATEI:~6,2% echo %1 kommt aus Jahr %jahr%, Monat %Monat%, Tag %tag% REM hier kann man noch in eine Datei schreiben was "angepackt" wird echo %datei% >> Verarbeitete_Dateien.txt REM Ordner für den Vormonat erstellen ( ist ein wenig unschön, aber so gibts keine Probleme wenn das Jahr wechselt) if not exist %jahr%%vormonat% md %jahr%%vormonat% REM Datei aus dem Vormonat in den Ordner verschieben move %datei% %jahr%%vormonat% goto:eof :ende Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
volker81 Geschrieben 11. November 2009 Autor Teilen Geschrieben 11. November 2009 Wow. Das war ja fast mehr als ich erwartet hätte. Vielen Dank! Werde das mit dem RessKit evtl doch mal durchboxen! Vielen dank! Gruß, Volker Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
RipperFox Geschrieben 11. November 2009 Teilen Geschrieben 11. November 2009 kleiner Hinweis: ZIP geht auch, z.b. mit VBS: Bsp: Windows XP and 2003 Native Zip/Unzip Grüße Ripper Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.