marcimarc85
Goto Top

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?:


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

Content-Key: 375944

Url: https://administrator.de/contentid/375944

Printed on: April 19, 2024 at 20:04 o'clock

Member: em-pie
em-pie Jun 04, 2018 at 07:37:32 (UTC)
Goto Top
Moin,

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
Mitglied: 136166
136166 Jun 04, 2018 updated at 09:16:15 (UTC)
Goto Top
gci 'x:\' -Filter *.zip | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM') -and $_.LastWriteTime -lt (get-date).AddDays(-30)} | remove-item -Force