izakstern Geschrieben 20. April 2010 Teilen Geschrieben 20. April 2010 Hallöchen! Bin zwar schon lange FISI aber erst heute hier angekommen Mal schauen ob die Gemeinde ne Lösung für mich hat.. Ich möchte mit Robocopy eine regelmäßige (automatische) Vollsicherung machen, dazu will ich alle Sicherungen älter als X Tage auch automatisch löschen. (also mit Robocopy in einen Ordner verschieben und diesen dann löschen) da ich sonst keine Option dafür kenne. (delage32.exe fällt flach) Leider löscht mein Script immer alle Sicherungen aus dem Ordner, und nicht nur die die älter als X-Tage sind. Getestet habe ich es in dem ich eine Sicherung erstellt habe, dann die Uhr vorgestellte habe und dann noch eine Sicherung erstellt habe etc...Falls es nicht an der Syntax des Scriptes liegt, ist vielleicht da der Hund begraben? So sieht das Test-Script aus: @echo off set jahr=%date:~-4% set monat=%date:~-7,2% set tag=%date:~-10,2% set stunde=%time:~-11,2% set minute=%time:~-8,2% set sekunde=%time:~-5,2% set sicherungspfad_quelle=%C:\Users\root\Desktop\Batch-Test\Ordner1% set sicherungspfad_ziel=%C:\Users\root\Desktop\Batch-Test\Ordner2% set logdatei_pfad=%C:\Users\root\Desktop\Batch-Test\% echo "Verschieben der alten Sicherungen in den Loeschordner..." robocopy "%sicherungspfad_ziel%" "%sicherungspfad_ziel%\ROBODELETE" /MOVE /E /MINAGE:3 /LOG+:"%logdatei_pfad%robolog_del.txt" echo "Loeschen der alten Sicherungen..." RD "%sicherungspfad_ziel%\ROBODELETE\" /S /Q echo "Erstellen der aktuellen Sicherung robocopy "%sicherungspfad_quelle%" "%sicherungspfad_ziel%\Sicherung_SBS_%jahr%_%monat%_%tag%" /E /LOG+:"%logdatei_pfad%robolog.txt" Dankeschön! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 20. April 2010 Teilen Geschrieben 20. April 2010 (bearbeitet) Hier würde ich nicht nach dem Alter der Sicherungen gehen, sondern nach der Anzahl der Sicherungen. D.h. immer eine gewisse Anzahl von Sicherungen vorhalten. Bei deiner Herangehensweise hast du das Problem, dass wenn (aus irgendwelchen Gründen auch immer) für drei Tage keine Sicherungen mehr gelaufen sind, das Skript beim nächsten Lauf alle noch vorhandenen löscht. Sodass du dann keine Sicherungen mehr hast. Bei einer meiner Sicherungen wird nach der Anzahl der Verzeichnisse im Sicherungsordner gelöscht: rem Maximal sieben + backup.log Sicherungen aufbewahren. for /f "skip=8" %%i in ('dir /o-d /b %ZIEL%') do rmdir /s /q %ZIEL%%%i Jedes Verzeichnis steht für eine Sicherung. Leider löscht mein Script immer alle Sicherungen aus dem Ordner, und nicht nur die die älter als X-Tage sind. D.h. er verschiebt alle Verzeichnisse aus dem Sicherungsordner nach ROBODELETE? Bitte beim nächsten Mal CODE-Tags für deinen Quellcode nutzen. Bearbeitet 20. April 2010 von lupo49 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
izakstern Geschrieben 20. April 2010 Autor Teilen Geschrieben 20. April 2010 Danke für deine schnelle Antwort! Der Ansatz einfach die Anzahl der Sicherungen zu nehmen ist nen guter Tipp, keine Ahnung wieso mir das nicht eingefallen ist Dennoch würde ich ganz gerne verstehen warum mein Script nicht funktioniert. Ja Robocopy verschiebt alle Dateien aus dem Ordner in den Ordner ROBODELETE, danach wird einfach der Ordner gelöscht. Jedoch sollte Robocopy ja nur die Dateien/Ordner verschieben, die älter als X Tage sind. LG izak Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 20. April 2010 Teilen Geschrieben 20. April 2010 Ich vermute mal das die Prozent-Zeichen bei den Pfadangaben Schreibfehler sind und Anführungszeichen sein sollten. Die Robocopy-Parameter sind soweit korrekt, einzig den "ROBODELETE"-Ordner würde ich mit "/XD" ausklammern. Hab es gerade mit meinem %TEMP%-Ordner getestet, hat geklappt. Gruss, tester2k5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
izakstern Geschrieben 21. April 2010 Autor Teilen Geschrieben 21. April 2010 Nein eigentlich ist das kein Schreibfehler. Aus welchem Grund würdest du den Ordner mit XD ausklammern? Die Pfade etc. müssen ja an sich funktionieren, da er ja ALLE Dateien aus dem Ordner löscht, nur eben keine Rücksicht auf das Alter nimmt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tester2k5 Geschrieben 21. April 2010 Teilen Geschrieben 21. April 2010 Pfade sollten, sofern sie Leerzeichen enthalten, in Anführungszeichen gesetzt werden. Teils per "SET" nicht erforderlich, aber weshalb verwendest "Prozentzeichen" ? Den Ordner würde ich ausklammern, da Robocopy darin nicht arbeiten soll, auch wenn der Ordner aufgrund des Parameters ("/MINAGE:3") ignoriert werden sollte, ist sauberer. Hast du es nochmal gestestet? Ggf. den Robocopy-Befehl direkt von der Kommandozeile? Gruss, tester2k5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
izakstern Geschrieben 27. April 2010 Autor Teilen Geschrieben 27. April 2010 Hi, sry hat ein wenig gedauert. Hab zwar neue Erkenntnisse, komme aber trotzdem nicht weiter. Robocopy hat ja standardmäßig die Einstellung /COPY:DAT, also kopiere Daten, Attribute und Timestamps. Würde also den genannten Fehler erklären, wenn er ja auch die Timestamps Quelldateien mitkopiert. Wenn ich aber /COPY:DA angebe, werden die Timestamps trotzdem mitkopiert. Scheint wohl ein Bug zu sein, oder irre ich mich? --> Wenn man eine LOG-Datei erstellt, zeigt RoboCopy ja auch die gewählten Parameter an, und dort zeigt er trotz angegebenen /COPY:DA die Einstellung /COPY:DAT an. Kennt jemand nen Programm ähnlich wie touch.exe wo man den Timestamp aller Dateien verändern kann? (mit Verzeichnisstruktur etc.) Danke! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Connor1980 Geschrieben 27. April 2010 Teilen Geschrieben 27. April 2010 Wenn ich das richtig verstehe hast du ein Problem mit unterschiedlichen Timestamps von Quelle und Ziel? Probiere mal den Schalter /FFT Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.