EulandaXtools — Funktionsreferenz
Ermittelt veraltete Datensicherungsdateien anhand des Datums im Dateinamen.
Select-OutdatedFilenames [-Filenames] <object> [-Basename] <string> [-Extension] <string>
[[-History] <int>] [<CommonParameters>]Diese Funktion dient der automatisierten Verwaltung von Backup-Dateien auf NAS, FTP oder SFTP-Zielen. Sie filtert eine Liste von Dateinamen nach einem erwarteten Muster (`$Basename-YYYY-MM-DD-HH-mm-ss-ffff.$Extension`) und identifiziert jene Dateien, die gemäß der gewünschten `-History`-Tiefe als veraltet gelten.
Sie wird u. a. von `Backup-MssqlDatabase` verwendet, um alte ZIP-Dateien von Sicherungen automatisch zu löschen – sowohl lokal als auch auf Remote-Systemen.
Anwendungslogik:
-Filenames
Type: objectEine Liste von Dateinamen (z. B. aus `Get-ChildItem -Name` oder einem FTP-Verzeichnis).
-Basename
Type: stringDer gemeinsame Basisname der Sicherungsdateien (z. B. `MyDatabase`). Dieser muss exakt mit dem Prefix im Dateinamen übereinstimmen.
-Extension
Type: stringDie Dateiendung (z. B. `.zip`). Kann mit oder ohne Punkt übergeben werden.
-History
Type: int
Default: 3Anzahl der aufzubewahrenden Dateien. Alle älteren werden als "veraltet" zurückgegeben. Standard: 3
[string[]] – Liste der veralteten Dateinamen, die gelöscht werden können.# Gibt die beiden ältesten Dateien zurück, also von 01.01. und 02.01.
Select-OutdatedFilenames -Filenames @("MyDb-2024-01-01-10-00-00-1234.zip", "MyDb-2024-01-02-10-00-00-1234.zip", "MyDb-2024-01-03-10-00-00-1234.zip", "MyDb-2024-01-04-10-00-00-1234.zip") -basename 'MyDb' -extension '.zip' -history 2Get-ChildItem -Path \\nas\sql -Name | Select-OutdatedFilenames -basename 'DB1' -extension 'zip' -history 5 | ForEach-Object { Remove-Item "\\nas\sql\$_" }