bischi007
Goto Top

Batch Script zur Datensicherung und Löschung naxh x-Tagen

Hallo zusammen,

also es ist folgendermaßen:
Ich hätte gerne eine Batch, die folgendes macht :

- Eigene Dateien vom Laufwerk D auf Laufwerk C kopieren, dabei soll immer alles komplett kopiert werden.
- Bei jedem Kopiervorgang soll auf C dann ein neuer Ordner angelegt werden, der anhand des datums benannt wird.
- Wenn es bereits mehr als 5 Sicherungen vorhanden sind, soll die älteste davon gelöscht werden.

Die ersten beiden Punkte hab ich soweit umgesetzt (siehe Batch-Script unten) das läuft auch so, aber leider hab ich gar keine ahnung, wie ich mit dem dritten Punkt umgehen soll. Das backup wird täglich ausgeführt, also wenn z.b. an einem Montag das erste angelegt wurde, dann soll am samstag zusammen mit der erstellung der 6ten Sicherung, die Sicherung vom Montag gelöscht werden...am Sonntag dann die vom Dienstag usw.... einfach so, das in dem Ordner immer nur max. 5 Ordner sind.

Hat da jemand eine Idee was da noch in meine Batch muss? Für Lösungsvorschläge wäre ich sehr dankbar, bin da noch recht unbeholfen.
Danke schon mal.

und hier meine momentane batch:

xcopy "D:\Dokumente und Einstellungen\bischi007\Eigene Dateien" "C:\Eigene Dateien\EigeneDateien vom %date%"/s /r /y /i

pause

Content-Key: 55888

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

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

Member: Biber
Biber Apr 04, 2007 at 22:43:09 (UTC)
Goto Top
Moin bischi007,
for /f "skip=5 delims=" %%i in ('dir /b /o-D /ad  "C:\Eigene Dateien\Eigene Dateien vom *"') do @ECHO @rd /s /q "c:\Eigene Dateien\%%i"  

Wenn Du diese EINE Zeile vor Deinem "pause"-Befehl einfügst, werden alle Sicherungsordner ausser den 5 frischesten gelöscht.
[a) Zumindest in der Theorie, getestet hab ich jetzt nicht.]
[b) Und natürlich ist es wie immer erstmal nur Simulation, also der @echo-befehl zum Testen noch drin]

Gruss
Biber
Member: Bischi007
Bischi007 Apr 05, 2007 at 17:51:12 (UTC)
Goto Top
Hi,

danke für deine Antwort. Das Script löscht jetzt zwar auch einen Ordner, aber irgendwie nicht den ältesten. Ich hatte in dem Ordner jetzt die Eigenen Dateien vom 1.,2.,3.,4., und 5. April und habe meien Systemzeit einfach mal auf den 6. geändert... dann hat er die Eigenen Dateien vom 4. gelöscht ... warum auch immer? danach hab ich die systemzeit auf den 7. gesetzt und er hat die vom 3ten gelöscht...die vom 1. und 2. sind immer noch da ...

die batch schaut bei mir jetzt so aus :

xcopy "D:\Dokumente und Einstellungen\bischi007\Eigene Dateien" "C:\Eigene Dateien\EigeneDateien vom %date%"/s /r /y /i
for /f "skip=5 delims=" %%i in ('dir /b /o-D /ad "C:\Eigene Dateien\EigeneDateien vom *"') do rd /s /q "c:\Eigene Dateien\%%i"
pause


und ich habe noch etwas festgestellt : Es werden nicht alle dateien gesichert... meine eigenen dateien umfassen 624MB und der sicherungsordner nur 621MB... sind zwar nur 3MB, aber es fehlen im sicherungsordner insgesamt 9 ordner ( diese 9 ordner sind alle 0byte groß, werden sie deswegen nicht mitkopiert?) wie kann man das einstellen, das er wirklich alles kopiert, auch wenn es 0 byte groß ist?


Danke für dene, bzw. eure Hilfe!
und noch eine kleine frage ...
ich hab gehört das bei vista keine .bat dateien mehr ausführbar sind...stimmt das? gibt es trotzdem eine möglichkeit dann z.B. dieses script laufen zu lassen?
Member: miniversum
miniversum Apr 06, 2007 at 08:26:02 (UTC)
Goto Top
Hast du die Ordner alle selbst nach einander erstellt? Ist vielleicht dort der zeitliche Abstand zudenen sie erstellt wurden kleiner 1 Minute? Diese Batch nimmt den ältesten weg der angelegt wurde, geht also NICHT nach dem Dateinamen sondern nach der Erstellzeit. Das kannst du rausfinden indem du mal im cmd dir /o-d eintippst ud schaust ob der Ordner mit dem ältesten Datum unten in der Liste steht.

Zum Problem mit den Leeren Ordnern:
die Option /s beim xcopy koppiert dir nur die nicht leeren Ordner. Willst auch die Leeren haben must du noch die Option /e dazu hängen.

Und zu Vista:
Auch hier auf meinem Vista laufen Batch Dateien. Allerdings habe ich schon bei ein Paar cmd Befehlen aufgrund der weiterentwicklung leichte Abweichungen bei den Parametern festgestellt. Also zur Sicherheit lieber nochmal nachprüfen.

miniversum
Member: Bischi007
Bischi007 Apr 06, 2007 at 09:27:36 (UTC)
Goto Top
Ach so, ok, danke.. ich hab jetzt mal das /s durch ein /e ersetzt ... in dem fall warte ich jetzt einfach mal die nächsten tage ab was passieren wird. in spätestens 5 atgen weiß ich ja dann bescheid ob es läuft face-smile

und noch was :

ist es eigentlich auch möglich eine batch so zu schreiben, das der computer nach der sicherung das ganze gleich auf eine cd brennt? wenn das geht, ist es bestimmt recht kompliziert, denke ich. aber es würde mich interessiere ob so etwas zumindest möglich ist? aber wahrscheinlich ist es ja einfacher man nimmt sich dafür irgendein tool..bzw. so wichtig das es gleich gebrannt wird ist es ja auch wieder nicht, wäre nur eien spielerei face-smile

danke!
Member: miniversum
miniversum Apr 06, 2007 at 11:21:44 (UTC)
Goto Top
Na zum ausprobieren reicht es wenn du die Verzeichnisse im zeitlichen Abstand von mindestens 1 Minute anlegst. Das reicht schon zum Ausprobieren. Damust du keine 5 Tage warten :D

Brenne geht nur mit Zusatzprogrammen. Nero läst sich z.B. per Comandozeile ansteuern. Es gibt aber auch verschiedene andere Tools die kostenlos sind. cdrtools, .... Einfach mal googlen.

miniversum
Member: Bischi007
Bischi007 Apr 06, 2007 at 11:24:40 (UTC)
Goto Top
echt? mit nero geht das? nero hab ich... aber wie man nero automatscih sagen soll, das es z.B. jeden sonntag um 18 Uhr den ordner eigene dateien brennen soll und die wiederbeschreibbare cd einfach überschreiben ist mir unklar ... das funktioniert wirklich?
Member: miniversum
miniversum Apr 06, 2007 at 15:25:02 (UTC)
Goto Top
naja also das mit dem jeden sonntag um 18 Uhr das mußt du schon selbst über nen Task starten....
Aber das Brennen an sich geht. Das kannst du theoretisch an den Batch mit dran hängen.
schau mal im Verzeichnis von Nero indem die Nero.exe liegt liegt auch das Programm NeroCmd.exe. Starte das einfach mal dann bekommst du die Hilfe angezeigt welche Parameter Du mit angeben mußt. Ich habs das mit Nero selbst noch nie gemacht aber es funktioniert.

miniversum
Member: Biber
Biber Apr 08, 2007 at 17:58:06 (UTC)
Goto Top
Moin bischi007,

wie soll ich mit diesem Beitrag verfahren?
Ist Deine ursprüngliche Frage beantwortet? Dann würde ich den Thread gern schliessen.
Wenn nicht, dann bitte die für Dich offenen Teile konkretisieren.

Wobei ich das Vorlesen bzw. Copy & Pasten der möglichen NeroCmd-Optionen nicht unbedingt als Aufgabe des Forums sehe.

Was ich allerdings eine schöne Geste fände, bischi007:
Wenn Du (D)eine sinnvolle Beispiel-Batchautomatisierung mit NeroCmd austüftelst und hier als Tutorial in den Bereich Batch & Shell stellst...

Gruss Biber
[Edit] 10.4.2007 Habe gerade gesehen, dass ich schon einen anderen bischi007-Beitrag geschlossen habe, weil ich keine Antwort erhalten habe...
Mach so etwas lieber nicht dreimal mit mir...
[/Edit]