Powershell Script Backups auf Netzlaufwerk älter als x-tage löschen Monatssicherung
Hallo
Ich bin in Powershell nicht wirklich fit.
Und zwar benötige ich ein Script:
Bei einem Kunden kopiere ich Backups (vom Tag) täglich auf einen freigegebenen Netzwerkpfad. Am Ende des Monats soll dann immer das Backup vom letzten Tag im Monat (also entweder vom 28,29,30, oder 31. das ist jai mmer unterschiedlich) in einen Unterordner "Monatssicherungen" verschoben werden. Danach soll immer das ältester Backup nach 30 Tagen gelöscht werden.
es gibt dafür schon ein Powershell Script, was mein Vorgänger mal angelegt hat, aber diese löscht nach dem verschieben in den Ordner Monatssicherung, alle andern Backups der letzten 30 Tage. ich möchte aber nur, dass das älterste (>30) gelöscht wird. was müsste ich dazu am vorhanden Powershell Script ändern?:
Ich bin in Powershell nicht wirklich fit.
Und zwar benötige ich ein Script:
Bei einem Kunden kopiere ich Backups (vom Tag) täglich auf einen freigegebenen Netzwerkpfad. Am Ende des Monats soll dann immer das Backup vom letzten Tag im Monat (also entweder vom 28,29,30, oder 31. das ist jai mmer unterschiedlich) in einen Unterordner "Monatssicherungen" verschoben werden. Danach soll immer das ältester Backup nach 30 Tagen gelöscht werden.
es gibt dafür schon ein Powershell Script, was mein Vorgänger mal angelegt hat, aber diese löscht nach dem verschieben in den Ordner Monatssicherung, alle andern Backups der letzten 30 Tage. ich möchte aber nur, dass das älterste (>30) gelöscht wird. was müsste ich dazu am vorhanden Powershell Script ändern?:
If (!(Test-Path x:))
{
$net = new-object -ComObject WScript.Network
$RemoteShare = '\\Filer10\RailSysbackup'
$net.MapNetworkDrive("x:", $RemoteShare, $false, "Domäne\User, "password")
}
$files = gci 'x:\' -Filter *.zip | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM')} | sort LastWriteTime -Desc
$files | select -First 1 | move-item -Destination 'x:\Monatssicherung' -Force
$files | select -skip 1 | remove-item -Force
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 375944
Url: https://administrator.de/forum/powershell-script-backups-auf-netzlaufwerk-aelter-als-x-tage-loeschen-monatssicherung-375944.html
Ausgedruckt am: 09.04.2025 um 20:04 Uhr
2 Kommentare
Neuester Kommentar
Moin,
ich tippe mal auf diese Zeile:
wenn du aus -skip 1 ein -skip 30 machst, sollte er die ersten 30 Dateien überspringen.
Ansonsten wirst du hier fündig werden
Gruß
em-pie
ich tippe mal auf diese Zeile:
$files | select -skip 1 | remove-item -Force
wenn du aus -skip 1 ein -skip 30 machst, sollte er die ersten 30 Dateien überspringen.
Ansonsten wirst du hier fündig werden
Gruß
em-pie

gci 'x:\' -Filter *.zip | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM') -and $_.LastWriteTime -lt (get-date).AddDays(-30)} | remove-item -Force