alte Dateien löschen mit Powershell

Auf Backup-Servern kann es durchaus sinnvoll sein zu alte Filebackups zu löschen um das Volllaufen des Servers zu vermeiden.

Mit Get-ChildItem lassen wir uns alle Objecte innerhalb eines Pfades anzeigen und übergeben diese per „|“ (Pipe) an „Where-Object“ um dann nach der CreationTime (älter als 15 Tage) zu filtern. Die nach der Filterung resultierende Datenmenge wird mit „Remove-Item -Force“ gelöscht

$cleanup_locations=@("D:\Backup\db_dumps\","D:\FTP-Backup\")
$retentiontime_in_days = (Get-Date).AddDays(-15)
$debug=0 

foreach ($path in $cleanup_locations){

    if(Test-Path $path -PathType Container){
        # Delete files older than the $retentiontime_in_days.
        write-host "cleanup $path"
        
        if($debug -eq 0){
            Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $retentiontime_in_days } | Remove-Item -Force
        
        }else{
            Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $retentiontime_in_days }

        }

    }else{
        write-host "$path does not exists"
    }
}

weitere Beiträge zur Powershell

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.