Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Nur aktuelle, tägliche Logs zusammenfassen

$
0
0

Guten Morgen zusammen,

ich habe einen Code, der die täglichen Logdateien in ein monatliches Log zusammenschreibt. Das wird dann wiederum in ein Zip-Archiv geschoben.

Das Problem ist jetzt, dass die alten, täglichen Logs z.B. die vom April im selben SourceOrdner stehen, wie die neuen Logs vom Mai. Deswegen möchte ich, dass die täglichen Logs vom z.B. April gelöscht werden, nachdem das monatliche Log erstellt wurde.  ODER: Eine Abfrage, die die tägl. Logs des aktuellen Monats zusammenfast ind das monatliche. Damit im Ordner immer die aktuellen täglichen Logs zusammengefasst werden.

Noch zur Info: Das Script wirtd 1 Mal im Monat von einem Task ausgeführt.

Set-StrictMode -Version "2.0"
Clear-Host
Import-Module pscx

$Source="D:\bla\bla"
$Destination="D:\bla\bla\bla" #muss existieren
$Level=1
$jahrmonat = "{0:yyyyMM}" -f (get-date).AddMonths(-1)

#Alle Verzeichnisse
$Folders=@(Get-ChildItem -Path $Source -Exclude 'Test' | Where{$_.PSISContainer -Match $true})

#sammelt die tägl. Logs in monatliche nach folgendem Muster: XXX_yyyymm
ForEach ($Folder in $Folders) {
    $Dateiname= $Folder.Name + '_' + $jahrmonat + '.log'
    Add-Content -Path (Join-Path $Folder.Fullname $Dateiname) -Value (Get-Content -Path (Join-Path $Folder.Fullname 'u_ex*.log'))
    #das monatliche LogFile wird in ein gleichnamiges Zip-Archive gepackt 
    ForEach ($File in Get-ChildItem -Path $Folder) {
        if ($File.name -notlike "u_*") {
	       Write-Zip -path $File.Fullname -Level $Level -OutputPath (Join-Path $Destination  ($Folder.Name + '.zip')) -quiet -Append}
    }
}

Freue mich über jede Hilfe!

Vielen Dank!



Viewing all articles
Browse latest Browse all 2314

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>