Backup-Rotation mit PowerShell: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Thomas (Diskussion | Beiträge) |
||
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 3: | Zeile 3: | ||
Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner <code>C:\datensicherungtask</code>, sodass nur die 5 neuesten Sicherungen erhalten bleiben. | Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner <code>C:\datensicherungtask</code>, sodass nur die 5 neuesten Sicherungen erhalten bleiben. | ||
<syntaxhighlight lang="powershell"> | <syntaxhighlight lang="powershell"> | ||
$Pfad = "C:\datensicherungtask" | $Pfad = "C:\datensicherungtask" | ||
| Zeile 10: | Zeile 9: | ||
foreach ($Datei in $ZuLöschen) { | foreach ($Datei in $ZuLöschen) { | ||
Remove-Item $Datei.FullName -Force | Remove-Item $Datei.FullName -Force -ErrorAction SilentlyContinue | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 41: | Zeile 40: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Beispielausgabe der Logdatei === | |||
<pre> | |||
Cleanup am 13.08.2025: | |||
Gelöscht: dasi20250730.zip | |||
Gelöscht: dasi20250731.zip | |||
</pre> | |||
''Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}'' | ''Letzte Änderung: {{CURRENTDAY}}.{{CURRENTMONTH}}.{{CURRENTYEAR}}'' | ||
[[Kategorie:Powershell]] | [[Kategorie:Powershell Scripte]] | ||
Aktuelle Version vom 13. August 2025, 12:54 Uhr
PowerShell: Nur die 5 neuesten Sicherungsdateien behalten
[Bearbeiten | Quelltext bearbeiten]Dieses Skript löscht automatisch alle älteren ZIP-Dateien im Ordner C:\datensicherungtask, sodass nur die 5 neuesten Sicherungen erhalten bleiben.
$Pfad = "C:\datensicherungtask"
$Dateien = Get-ChildItem -Path $Pfad -Filter "dasi*.zip" | Sort-Object LastWriteTime -Descending
$ZuLöschen = $Dateien | Select-Object -Skip 5
foreach ($Datei in $ZuLöschen) {
Remove-Item $Datei.FullName -Force -ErrorAction SilentlyContinue
}
Verwendung in der Aufgabenplanung
[Bearbeiten | Quelltext bearbeiten]- Öffne die Windows-Aufgabenplanung.
- Erstelle eine neue Aufgabe mit einem täglichen Trigger (z. B. 23:59 Uhr).
- Als Aktion:
- Programm/Skript:
powershell - Argumente:
-ExecutionPolicy Bypass -File \"C:\Pfad\zu\deinem\Skript.ps1\"
- Programm/Skript:
- Speichern und aktivieren.
Hinweis: Stelle sicher, dass das Skript unter einem Benutzerkonto mit ausreichenden Rechten läuft und dass PowerShell-Skripte erlaubt sind.
Erweiterungsmöglichkeiten
[Bearbeiten | Quelltext bearbeiten]- Logdatei mit Datum und gelöschten Dateien
- E-Mail-Benachrichtigung bei Löschvorgängen
- Prüfung auf Mindestanzahl vor dem Löschen
Erweiterung: Logging
[Bearbeiten | Quelltext bearbeiten]$LogPfad = "C:\datensicherungtask\cleanup.log"
Add-Content -Path $LogPfad -Value "Cleanup am $(Get-Date):"
foreach ($Datei in $ZuLöschen) {
Remove-Item $Datei.FullName -Force
Add-Content -Path $LogPfad -Value "Gelöscht: $($Datei.Name)"
}
Beispielausgabe der Logdatei
[Bearbeiten | Quelltext bearbeiten]Cleanup am 13.08.2025: Gelöscht: dasi20250730.zip Gelöscht: dasi20250731.zip
Letzte Änderung: 12.01.2026