none
Daten löschen per PowerShell mit Ausnahme RRS feed

  • Frage

  • Hallo zusammen,

    auf unserem SQL-Server wird täglich eine Datenbanksicherung erstellt. Diese wird morgens per PowerShell-Skript auf ein Netzwerklaufwerk verschoben. Damit dort kein Wildwuchs entsteht werden die Daten, ebenfalls per PowerShell, gelöscht sofern sie älter als 5 Tage sind. Jetzt habe ich allerdings ein Problem, wenn die DB-Sicherung mal 5 Tage nicht laufen würde. Dann hätte ich keine Sicherung mehr.

    Kann ich irgendwie PowerShell mitgeben, dass er die Daten nicht löschen soll, wenn nach dem Löschvorgang der Ordner leer wäre?

    Mein bisheriges Skript sieht folgendermaßen aus:

    gci -Path "D:\MSSQLServer\MSSQL\Backup\*.*" -Recurse | Move-Item -Destination "Z:" -force

    Danke schonmal vorab.

    Grüße

    MuenchM


    Mittwoch, 7. Juni 2017 06:21

Antworten

  • Hallo MuenchM

    Ja dies ist grundsätzlich möglich wenn du vorher prüfst wie viele Dateien mit einem Datum der letzten 5 Tage bestehen. Wenn es mehr als 5 sind, dann lösche den Rest

    Hier mal ein Beispiel auf die schnelle

    $date = (Get-Date).AddDays(-5)
    $Files = Get-ChildItem -Path C:\temp\ -file | Where-Object {($_.CreationTime -ge $date)}
    if($files.Length -lt 5)
    {
        # lösche den rest
    }


    Benjamin Hoch
    MCSE: Data Platform & Data Management and Analytics
    MCSA: SQL Server 2012/2014 & 2016 DB Administration
    MCSA: Windows Server 2012

    Mittwoch, 7. Juni 2017 06:42