marcimarc85
Goto Top

Powershell neuste Datei aus einem Ordner in einen anderen ordner kopieren und Statusbalken anzeigen

Hallo ,

ich würde gern ein Backup, was täglich erstellt wird, in einen Share als Monatssicherung kopieren. Bisher lief das ganz gut. Der Task, der die Backups erstellt, läuft täglich um 23 Uhr. Der Task , der das Backup (also das letzte Backup jeden Monats) in den Share kopiert, läuft am ersten Tag des Folgemonats, gleich morgens um 6 Uhr. Nun ist es so, dass das Script nach Lastwritetime sucht, das Backup aber mittlerweile so groß geworden ist, dass es ert nach 24 Uhr , also schon im nächsten Monat fertig gezipped ist und somit z.B. nicht das Backup vom 31.07 weggkopiert wird, sondern vom 30.07.

Wie muss ich denn das folgende Powershell Script abändern, damit es so funktioniert, wie bisher? Alternativ halt nur, dass das aktuelste File wegkopiert wird. Würde ja auch gehen, da das Script ja gleich morgens läuft und das nächste Backup vom neuen Monat erst um 23 Uhr am Abend:


If (!(Test-Path x:))
{
$net = new-object -ComObject WScript.Network
$RemoteShare = '\\Filer10\RailSysbackup'  
$net.MapNetworkDrive("x:", $RemoteShare, $false, "domain\username", "password")  
}
$files = gci 'x:\' -Filter *full*.zip | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM')} | sort LastWriteTime -Desc   
$files | select -First 1 | copy-item -Destination 'x:\Monatssicherung' -Force   


Was noch schön wäre, wenn man einen Fortschrittsbalken anzeigen lassen könnte, der den Dateinamen der Datei anzeigt, die verschoben wird. (nice to have)

Content-Key: 382224

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

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

Member: Kraemer
Kraemer Aug 03, 2018 at 07:32:01 (UTC)
Goto Top
Moin,

zieh bei deiner Berechnung einfach 2 Monate statt einem ab und drehe die Sortierung der Backups um.
Dann sollte das passen.

Gruß
Member: MarciMarc85
MarciMarc85 Aug 03, 2018 at 07:56:06 (UTC)
Goto Top
Dann kopiert das Script garnix
Member: Kraemer
Kraemer Aug 03, 2018 at 08:05:46 (UTC)
Goto Top
das mit den zwei Monaten war ein Denkfehler von mir. Es muss ja gar nichts mehr abgezogen werden.
Sorry ist einfach zu warm

So sollte es passen:

$RemoteShare = '\\Filer10\RailSysbackup\Monatssicherung'  
$files = gci 'x:\' -Filter *full*.zip | sort LastWriteTime -Desc   
$files | select -First 1 | copy-item -Destination $RemoteShare -Force