willers
Goto Top

Robocopy 5 Tage Sicherung

Hallo zusammen,

ich bastele mir gerade eine Batch mit Robocopy zusammen.
folgenden Zustand habe ich momentan.

Batch legt Backup von Quelle in ein Verzeichniss \\Server\Backup\Backup.%datum% (z.B.Backup.02.09.2009).
Jetzt häte ich gerne noch einen befehl der vor dem Backup nachschaut welche Ordner im Backupverzeichniss
älter als 5 Tage sind und diese dann löscht. Grund dafür ist das mir sonst das Ziellaufwerk überläuft.

für ein kleines Script wäre ich dankbar


MfG

B.Willers

Content-Key: 124203

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

Printed on: April 18, 2024 at 23:04 o'clock

Member: Connor1980
Connor1980 Sep 04, 2009 at 11:32:26 (UTC)
Goto Top
Ich würde anstatt Datum als Ordnernamen einfach 1, 2, 3, 4 und 5 nehmen. Dann solltest einfach den ältesten immer löschen, die anderen bennenst du um, erhögst also die Zahl (4->5, 3->4, etc.) und erstellst die 1.
So hast du in 5 immer die älteste und in 1 die neueste Sicherung. Das Datum kannst du ja jeweils in eine Textdatei schreiben, oder besser du schreibst den Sicherungsvorgang direkt in eine Logdatei in denselben Ordner, wo die Sicherung liegt.
Member: pieh-ejdsch
pieh-ejdsch Sep 04, 2009 at 13:16:30 (UTC)
Goto Top
Hi willers,

tust Du das in Batch vorher rein und es bleiben die vier neuesten Ordner Übrig.

for /f "skip=4 tokens=*" %%i in ('dir /a:d /b /o:-d /t:c "\\Server\Backup\"') do rd /s /q "%%i"

Gruß Phil
Member: Willers
Willers Sep 04, 2009 at 14:36:29 (UTC)
Goto Top
Hi pieh-ejdsch,

ich danke Dir und werde es testen.

Wäre es sehr frech wenn ich fragen würde ob Du mir erklären kannst was die einzelnen optionen und Befehle machen ?
Ich versuche nämlich immer zu verstehen was ich so mache face-wink

MfG

B.Willers
Mitglied: 81825
81825 Sep 04, 2009 at 14:44:12 (UTC)
Goto Top
Hi,

ganz allgemein: Wie wäre es denn, wenn du dich mal mit der Suchfunktion dieses Forums vertraut machen würdest und sie auch benutzt?
Gerade zu deinen Fragen gibt es nämlich sowohl reichlich Themen als auch reichlich Information.

=

Ein Anfang wäre auch, in der Hilfe (zu XP, hier als Beispiel) mal Verwenden von Batchdateien einzugeben und etwas zu lesen.
Member: Willers
Willers Sep 04, 2009 at 14:53:51 (UTC)
Goto Top
Hi greypeter

Bevor ich eine Frage stelle nutze ich die Suchfunktion schon sehr gern.

Aber "ganz allgemein"

Ich habe ja auch nicht Dich gefragt und deswegen verstehe ich nicht warum Du mir jetzt hier so von der Seite kommst ?

Finde ich schon etwas daneben muss ich sagen

MfG

B.Willers
Mitglied: 81825
81825 Sep 04, 2009 at 14:57:15 (UTC)
Goto Top
Zitat von @Willers:
Ich habe ja auch nicht Dich gefragt und deswegen verstehe ich nicht
warum Du mir jetzt hier so von der Seite kommst ?

Finde ich schon etwas daneben muss ich sagen

Ich habe dir lediglich einen Hinweis gegeben. Daneben sind nur deine Antwort und die Missachtung der Regeln.

Regel Nr. 2: Beiträge und Kommentare
  • Nutzt vor dem Erstellen neuer Beiträge die Suchen-Funktion und die "Häufige Fragen".

Aber so ist das. Nichts in der Birne, dafür eine umso größere Klappe.
Member: Biber
Biber Sep 04, 2009 at 15:26:25 (UTC)
Goto Top
Moin Willers,

um mal die Wogen etwas zu glätten, bis pieh-ejdsch antwortet...

greypeter reagierte so angefasst, weil diese Frage (mit genau der beschrebenen Lösungsstrategie) wirklich schon mehrfach in diesem Forum durchgekaspert wurde.
Beispielswiese mit der Forumssuche nach "älteste Sicherung löschen" findest Du mehrere fast identische Beiträge.

Und der zweite Punkt ist eben der, dass sogar wenn Dir die in der einen FOR/F-Zeile genannten Befehle vollständig unbekannt wären und Du sie mit FOR/? und DIR/? am CMD-Prompt nachschlagen müsstest....
--> dann hätte genau dieses Vorgehen eine Nachfrage überflüssig gemacht.

Aber was solls... in ein paar Stunden beginnt das Wochenende... bitte bereitet Euch mental lieber darauf vor.

Grüße
Biber
Member: pieh-ejdsch
pieh-ejdsch Sep 04, 2009, updated at Oct 18, 2012 at 16:39:14 (UTC)
Goto Top
Hi,

[OT]
suche nach
5 Tage alte sicherungen löschen
bringt kein Verwertbares ergebnis für die Frage
alte sicherungen löschen
bringt ua diesen Beitrag
Batch - Alte Ornder löschen
da ist sogar die gleiche Art Forschleife aufgeführt.....

es kommt also drauf an wie und nach was man sucht
vllt wurde nur nicht die richtige Begriffsvariante in die Suche eingegeben
[/OT]

Dein Befehl funktioniert aber nur deshalb weil Du deinen SicherungsOrdner mit Datum benennst.
daher existiert Maximal nur ein Ordner pro Tag.

zu der Erläuterung der Schleife:
Eine For-Schleife ist in mehrere Segmente aufgeteilt, wobei jedes Segment eine Bestimmte Aufgabe in der For-Schleife zu erledigen hat.
dick geschriebenes kann in die Schleife eingesetzt werden

FOR WAS und-WORAUS %ErsteAuzugebendeForVariable IN ( MIT-WELCHEM-OBJEKT ) DO BEFEHL mit %ForVariable

WAS - Was soll die ForSchleife aus MIT-WELCHEM-OBJEKT ausgeben zB. /F

WAS und-WORAUS - Was soll die ForSchleife aus dem Angegebenen Ort oder den Angegebenen Bereichen aus MIT-WELCHEM-OBJEKT ausgeben zB. /f "skip=4 tokens=*"

%ErsteAuzugebendeForVariable - Als erste auszugebende ForVariable dieser ForSchleife soll diese Variable so gekennezeichnet werden

MIT-WELCHEM-OBJEKT - wird auch als For-Gruppe bezeichnet welche je nach Angabe des WAS/ WAS und-WOMIT nacheinander als %ForVariable ausgegeben oder Zeilenweise abgearbeitet und als %ForVariable ausgegeben wird.

for /f "skip=4 tokens=*" %%i in ('dir /a:d /b /o:-d /t:c "\\Server\Backup\"') do rd /s /q "%%i"

/F - ist eine Anweisung an die For-Schleife: Gib mir die möglichkeit die Auswertung
zu Unterteilen bzw die Gruppe anders zu Behandeln: die mit Apostroh Umschlossene Gruppe wird als Befehl angesehen und diese Befehlsausgabe wird Zeilenweise Abgearbeitet.

skip=4 - gib mir erst nach der 4ten Zeile der Gruppe die Ausgabe als entsprechende Variable aus

tokens=* - gib mir aus der Zeile (die aus einem zusätzlich angegebenen delims als TeileTrennzeichen zwischen - oder ohne delims die zwischen Leerzeichen Unterteilten Teile) auch noch die angegebenen Numerischen Teile ohne die Trennzeichen aus und/oder bei Sternchen alle nachfolgenden Teile ohne die Trennzeichen zu entfernen als ein Teil aus. Also gib mir die ganze Zeile.

Gruß Phil
Member: Willers
Willers Sep 04, 2009 at 19:11:25 (UTC)
Goto Top
Hallo Phil,

ich danke Dir für die nette Erklärung. Vielen dank und bis zum nächsten mal.


MfG

B.Willers