grisupitu
Goto Top

Datei vom letzten Tag am Monatsende in anderen Ordner (automatisiert) kopieren und restliche Daten aus dem Monat löschen

Hallo ihr Lieben,

ich stehe vor folgendem Problem auf einem Windows 2008 R2 Server läuft jeden Tag eine SQL Sicherung , so dass jeden Tag entsprechende Dateien angelegt werden wie z.B:


guide_backup_2016_11_01_210002_7308339.bak
guide_backup_2016_11_02_210002_7076340.bak
guide_backup_2016_11_03_210001_0415298.bak
...
guide_backup_2016_11_28_210003_9812606.bak
guide_backup_2016_11_29_210002_7582227.bak

Diese Dateien liegen unter D:\SicherungSQLServer\guide

Nun würde ich gerne automatisiert die letzte angelegte Datei vom letzten Tag am Monatsende zu Beginn des nächsten Monats in den Unterordner D:\SicherungSQLServer\guide\Monatssicherung automatisch verschieben lassen also z.B. wäre dann die letzte Datei im Monat November guide_backup_2016_11_29_210002_7582227.bak , welche dann nach Monatssicherung verschoben werden soll

Da aber natürlich die anderen Monate nicht am 29. enden , sondern vom 28-31. stehe ich jetzt vor dem Problem wie das ganze Umzusetzen ist

Ich möchte also , dass zuerst die Sicherung vom letzten Tag am Monatsende woanders hin verschoben/kopiert wird und anschließend alle anderen Sicherungen des entsprechenden bereits durchgelaufenen Monats gelöscht werden.

Wie stelle ich das am besten an ?

Für Eure Hilfe bin ich sehr dankbar!

Liebe Grüße,
Grisu

Content-Key: 325565

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

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: 131381
Lösung 131381 05.01.2017, aktualisiert am 12.01.2017 um 11:36:34 Uhr
Goto Top
PS zum Beispiel:
$files = gci 'D:\SicherungSQLServer\guide' -Filter *.bak | ?{$_.LastWriteTime.toString('yyyyMM') -eq (get-date).AddMonths(-1).toString('yyyyMM')} | sort LastWriteTime -Desc  
$files | select -First 1 | move-item -Destination 'D:\SicherungSQLServer\guide\Monatssicherung' -Force  
$files | select -skip 1 | remove-item -Force
Gruß mik
Mitglied: GrisuPitu
GrisuPitu 05.01.2017 um 16:10:16 Uhr
Goto Top
Hi mik,

muss ich noch irgendwelche Variablen anpassen und welche Einstellungen sollte ich idealerweise im Taskplaner vornehmen (also wann sollte das Skript am besten laufen ?) ?

Vielen lieben Dank

und LG,
Grisu
Mitglied: 131381
Lösung 131381 05.01.2017 aktualisiert um 16:23:10 Uhr
Goto Top
Zitat von @GrisuPitu:
muss ich noch irgendwelche Variablen anpassen
Deine Pfade
und welche Einstellungen sollte ich idealerweise im Taskplaner vornehmen (also wann sollte das Skript am besten laufen ?) ?
Z.B. am ersten des Monats.
Mitglied: GrisuPitu
GrisuPitu 12.01.2017 um 11:12:46 Uhr
Goto Top
Hallo mik,

kam erst heute dazu es auszuprobieren....leider kommt das dabei raus:

Fehler beim Aufrufen der Methode, da [System.DateTime] keine Methode mit dem Na
men "AddMonth" enthält.
Bei D:\SicherungSQLServer\guide\Scripts\backupclean.ps1:1 Zeichen:121

back-to-top$files = gci 'D:\SicherungSQLServer\guide' -Filter *.bak | ?{$_.LastWriteTime

.toString('yyyyMM') -eq (get-date).AddMonth <<<< (-1).toString('yyyyMM')} | sor
t LastWriteTime -Desc
+ CategoryInfo : InvalidOperation: (AddMonth:String) , RuntimeE
xception
+ FullyQualifiedErrorId : MethodNotFound
Mitglied: 131381
Lösung 131381 12.01.2017 um 11:15:16 Uhr
Goto Top
Da fehlt nur ein s bei AddMonths.
Mitglied: GrisuPitu
GrisuPitu 12.01.2017 um 11:31:31 Uhr
Goto Top
Vielen lieben Dank,

jetzt geht es weiter bis zum nächsten Fehler ;(

Move-Item : Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werd
en, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren
Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akz
eptieren.
Bei D:\SicherungSQLServer\guide\Scripts\backupclean.ps1:2 Zeichen:37

back-to-top$files | select -First 1 | move-item <<<< 'D:\SicherungSQLServer\guide\Monat

ssicherung\2016' -Force
+ CategoryInfo : InvalidArgument: (guide_backup_20...001_9963323.
bak:PSObject) [Move-Item], ParameterBindingException
+ FullyQualifiedErrorId : InputObjectNotBound,Microsoft.PowerShell.Command
s.MoveItemCommand
Mitglied: 131381
131381 12.01.2017 aktualisiert um 11:37:43 Uhr
Goto Top
Scheint als hättest du nur Bullshit bei dir kopiert ...Kopiere den Code oben mal vernünftig! Er läuft einwandfrei.
I'm out.