Sicherung eines ganzen Ordners, nur wenn darin etwas geändert wurde

wg80

Neuling
Thread Starter
Mitglied seit
11.04.2011
Beiträge
5
Hallo zusammen,

ich möchte meine täglichen Backups mit Robocopy machen. Ich würde es gerne so machen:

Täglich wird eine neue Kopie eines kompletten Datenordners erstellt, aber nur wenn mindestens eine Datei in diesem Ordner verändert (auch hinzugefürgt oder gelöscht) wurde. Will es mit einer .bat-Datei machen, die täglich ausgeführt wird.

Wenn ich es so mache
"C:\... \robocopy.exe" "C:\Daten\temp" "D:\temp\temp_%date%" /E /A
werden ja nur die geänderten Dateien, aber nicht die übriegen im Ordner kopiert.

So
"C:\... \robocopy.exe" "C:\Daten\temp" "D:\temp\temp_%date%" /E
wird ja alles kopiert.

Wie kriege ich es hin, dass wenn sich auch nur eine Datei in Quellordner geändert hat, der gesamte Quellordner kopiert wird?

Danke schon mal!
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
"C:\... \robocopy.exe" "C:\Daten\temp" "D:\temp\temp_%date%" /E /A
Kopiert nur Dateien mit dem "Archive"-Attribut.



So
"C:\... \robocopy.exe" "C:\Daten\temp" "D:\temp\temp_%date%" /E
wird ja alles kopiert.

Wie kriege ich es hin, dass wenn sich auch nur eine Datei in Quellordner geändert hat, der gesamte Quellordner kopiert wird?
du kannst ja deine batchdatei über die aufgabenplanung laufen lassen.
dort stellst du ein das die batch bei anmeldung startet und jede 5 minuten wiederholt wird für ein tag.
wenn du dann dafür das systemkonto einstellst, läuft das sogar unsichtbar.
achte darauf das sich die arbeitsdauer von robocopy nicht mit der wiederhol zeit der aufgabe überschneidet.
 
Zuletzt bearbeitet:
Aber, ich hätte auch gern, dass wenn sich im Ordner nichts geändert hat, so wird auch keine Kopie erstellt. Sonst kommt es ja so, dass ich z.B. in einem Ordner Monate lang nichts ändere, aber täglich wird trotzdem eine Kopie des Ordners erstellt. Mit der Zeit sind es dann massig Daten, die gleich sind.
 
ich hab uns mal ne batch geschrieben damit das geht(auf win7 getestet).
am besten die batch über die aufgabenplanung laufen lassen, wie schon oben erwähnt.

ich habe dein quell und ziel pfad dazu genutzt. fals du es mal ändern willst, must du an allen 4 stellen
in der batch dementsprechend austauschen.
ansonsten ist noch wichtig, das die batch nur auf deutschem windows funktioniert, da
bei mir die cmd textausgabe eines befehls in deutsch ist und die batch diese ausgabe verarbeitet.
 

Anhänge

  • aktuell.zip
    436 Bytes · Aufrufe: 33
Zuletzt bearbeitet:
Ich würde dir rsyncbackup empfehlen: Lupinho's Home » RsyncBackup

Einmal den zu sichernden Ordner auswählen und wohin er gesichert wird, Silent modus aktivieren und anschließend dafür eine Verknüpfung erstellen lassen, schon kann man den Backupvorgang mit einem Doppelclick starten.

Das Programm arbeitet mit Hardlinks, er erstellt für jedes Backup einen eigenständigen Ordner, jedoch werden nur geänderte oder neue Dateien kopiert. Durch die Hardlinks wird jede Datei jedoch nur einmal auf der HD gespeichert.
 
@ bootsmann,

mein mir kommt immer

new. txt konnte nicht gefunden werden.... :-(
 
@ bootsmann,

mein mir kommt immer

new. txt konnte nicht gefunden werden.... :-(

uups hatte in der batch ein pfad benutzt den es unter xp nicht gibt.
hab den download oben geändert. nun sollte es auch auf windows xp laufen.

und damit man nicht bei quell und ziel pfad änderungen, die batch verändern
muss. hab ich noch zusätzliche batch dateien geschrieben.
man brauch jetzt nur noch den neuen quell und ziel pfad, auf die jeweilige
batch datei, per drag and drop ziehen, um die einstellungen zu verändern.
ob im aktuellen ziel ordner auch gelöscht werden soll,
kann man nun auch per batch aktivieren/deaktivieren(spiegeln aktivieren/deaktivieren).
das alles ist in der "synchro datum.zip" zu finden
---------------------------------------------------------------------------
wer lieber das ganze ohne die funktion "zielordner als datum speichern" haben will.
also robocopy ganz normal per drag and drop nutzen will, der läd sich die synchronisieren.zip runter.
 

Anhänge

  • syncro datum.zip
    2,1 KB · Aufrufe: 30
  • synchronisieren.zip
    2,2 KB · Aufrufe: 26
Zuletzt bearbeitet:
uups hatte in der batch ein pfad benutzt den es unter xp nicht gibt.
hab den download oben geändert. nun sollte es auch auf windows xp laufen.

Das ging bei mir, Danke! Ich hatte die Pfade in der Batch soweit angepasst.

---------- Beitrag hinzugefügt um 10:59 ---------- Vorheriger Beitrag war um 10:50 ----------

Ich würde dir rsyncbackup empfehlen: Lupinho's Home » RsyncBackup

Einmal den zu sichernden Ordner auswählen und wohin er gesichert wird, Silent modus aktivieren und anschließend dafür eine Verknüpfung erstellen lassen, schon kann man den Backupvorgang mit einem Doppelclick starten.

Das Programm arbeitet mit Hardlinks, er erstellt für jedes Backup einen eigenständigen Ordner, jedoch werden nur geänderte oder neue Dateien kopiert. Durch die Hardlinks wird jede Datei jedoch nur einmal auf der HD gespeichert.

Wie aktiviert man den Silent-Moduls? Das Programm hat leider keine Hilfe und auf der Seite gibts auch keine Infos zur Benutzung. Auf was genau muss die Verknüfpung erstellt werden, damit der Backup per Doppelklick gestartet wird?

Was sind Hardlinks? Wenn ich die Quell- und Zielordner eingestellt habe und die Sicherung manuell 2 mal ausführe, wobei ich nach der 1. Sicherung was im Quellordner ändere, so werden zwei Backup-Ordner erstellt, die jeweils alle Ordner / Dateien aus dem Zielordner enthalten, also es schaut so aus, als würden die nicht geänderten Daten doppelt existieren. Wie erkenne ich denn, ob sie tatsächlich da liegen oder ob da nur Hardlinks sind? Wo liegen dann die tatsächlichen Daten, wenn mir im erstellten Zielordner nur Hardlinks angezeigt werden?
 
Wie aktiviert man den Silent-Moduls? Das Programm hat leider keine Hilfe und auf der Seite gibts auch keine Infos zur Benutzung. Auf was genau muss die Verknüfpung erstellt werden, damit der Backup per Doppelklick gestartet wird?
Optionen -> Vollautomatisches Backup. Wenn du dann auswählst was alles wo und wohin gesichert werden soll kannst du oben "Speichern als RBD Datei" auswählen. Damit erhälst du eine Möglichkeit das Backup jederzeit mit Doppelklick zu starten (oder bei jedem Neustart indem du es in die autostart legst oder was auch immer) und ohne Nachfraqge ausführen zu lassen.
Mit der Option "Das Programm nach dem Backup beenden" sollte dir nichtmal der Log angezeigt werden.

Was sind Hardlinks?
Die Datei wird nur einmal auf der Hd gespeichert, weitere "Kopien" dieser Datei sind einfach nur Verweise des Dateisystems auf ein und dieselbe physikalisch vorhandene Datei. Sieht dann so aus als würde jede Menge Platz dafür drauf gehen, tuts aber nicht, ich hatte schon eine USB HD mit 900GB von 300GB belegt ;) Alternativ kannst du ihm unter Optionen auch sagen das nur veränderte Dateie kopiert werden sollen, dann werden keine Hardlinks erstellt und in dem neuen Verzeichnis landen nur die geänderten files, ich finde das mit den Hardlinks auch praktischer. Desweiteren kannst du ihm mitteilen das er Backups über einem bestimmten alter löschen soll.

Wenn ich die Quell- und Zielordner eingestellt habe und die Sicherung manuell 2 mal ausführe, wobei ich nach der 1. Sicherung was im Quellordner ändere, so werden zwei Backup-Ordner erstellt, die jeweils alle Ordner / Dateien aus dem Zielordner enthalten, also es schaut so aus, als würden die nicht geänderten Daten doppelt existieren. Wie erkenne ich denn, ob sie tatsächlich da liegen oder ob da nur Hardlinks sind? Wo liegen dann die tatsächlichen Daten, wenn mir im erstellten Zielordner nur Hardlinks angezeigt werden?
Wie vorher geschrieben, das sind nur weitere Verweise im Dateisystem auf den selben Ort auf der Harddisk. Das ganze funktioniert nebenbei nur mit neueren Dateisystemen, FAT unterstüzt meines Wissens nach keine Hardlinks.

Und solange sich nichts an deinen Dateien ändert wird nur eine solche Verknüpfung erstellt und keine erneute wirkliche Kopie, also genau das was du haben willst.

In der C't 09/2006 Seite 126 findet man einen guten Beitrag in dem Hardlinks näher erklärt werden.
 
Zuletzt bearbeitet:
RsyncBackup scheint wohl genau das zu sein, was ich wollte. Sehr schade, dass es keine Anleitung dazu gibt (habe ich zumindest nicht gefunden).

Was mir jetzt noch unklar ist: Wenn ich die Backups täglich mache, dann wird ja immer eine Kopie gemacht, unabhängig davon ob sich im Quellordner was geändert hat oder nicht. Speicherplatz wird zwar nicht wirklich verbraucht, da Hardlinks, aber es wird mit der Zeit unübersichtlich. Wenn es geht, dann würde ich nur dann eine Kopie machen, wenn sich was im Quellordner geändert hat. Dann weiß ich, jede Kopie enthält irdengd eine Änderung. Sonst, wenn ich später nach geänderten Datein suche, dann muss ich mich zuerst in unzählige Ordner reinklicken und schauen, ob es dort Änderungen gibt. Ich hoffe ich habe mich verständlich ausgedrückt.

Nun da gibt es die Einstellung "Aufräumen", aber ich weiß nicht genau, was die bewirkt. Ich könnte mir vorstellen, dass sich damit das machen lässt, was ich gern hätte. Aber wie?

Danke für alle Antworten!!!

---------- Beitrag hinzugefügt um 12:28 ---------- Vorheriger Beitrag war um 09:10 ----------

ich werde wohl eine RsyncBackup-Verknüpfung mit gewünschten Einstellungen über eine batch-Datei bei festgestellten Änderungen ausführen und dann habe ich das gewünschte Verhalten

an 10101010:

Könntest du mir bitte folgende Zeile aus einer deiner batch-Dateien oben erklären:
for /f "delims=?" %%i in ('dir /b /a /s "C:\Daten\temp"') do @echo %%~ni%%~xi %%~ti %%~zi>>"C:\...
Aus der Wirkung sehe ich, dass hier in eine in .... angegebene Datei die Unterordner und enthaltene Datein mit jeweils dem Änderungsdatum und -zeit geschrieben werden.

delims-Parameter spaltet ja die Ausgabe in Stücke, die durch angegebenes Zeichen getrennt sind. Du verwendest delims=?, aber wenn ich dir /b /a /s <Pfad> eingebe, ist in der Ausgabe kein einziges ? zu finden. Oder ist ? ein Platzhalter für beliebiges Zeichen, dann müsste ja die Ausgabe bei jedem zeichen gespaltet werden. Ich blicke nicht durch!!
 
an 10101010:

... Du verwendest delims=?, aber wenn ich ..., ist in der Ausgabe kein einziges ? zu finden.

ich hab das ? genommen, damit die Stücke nicht getrennt werden.
in dateinamen kommt ein fragezeichen nie vor. somit verarbeitet die forschleife
immer die ganze zeile. egal ob da leerzeichen sind.

ohne delims würde sonst zb. eine ausgabezeile meine kosten.txt ,
zu meine und kosten.txt interpretiert werden.
 
Zuletzt bearbeitet:
Nun da gibt es die Einstellung "Aufräumen", aber ich weiß nicht genau, was die bewirkt. Ich könnte mir vorstellen, dass sich damit das machen lässt, was ich gern hätte. Aber wie?
Ja, Aufräumen ist hier hilfreich, was genau verstehst du dort nicht?

Du kannst dort spezifizieren wieviele alte Backups paralell noch vorgehalten werden sollen. Du könntest z.B. dort auswählen das alle alten Backups sofort gelöscht werden wenn ein neues erstellt wird, dann hättest du immer nur die aktuellste Variante.

Wenn du dort eine Option auswählst sollte der Rest auch ziemlich selbsterklärend sein.
 
Ja, Aufräumen ist hier hilfreich, was genau verstehst du dort nicht?

Wenn ich es richtig verstehe, ist es nicht möglich, RsyncBackup so einzustellen, dass nur dann ein Backup ausgeführt wird, wenn es Änderungen gegeben hat. Das Programm erstellt immer ein Backup. Der Nachteil ist, dass man dann einen Haufen Backup-Ordner hat und nicht auf einen Blick erkennt, welche nur Hardlinks enthalten und wo Dateien richtig kopiert wurden wegen Änderungen. Das ist schlecht, wenn man aus irgendeinem Grund die Änderungen zurückverfolgen möchte. Als Abhilfe habe ich mir eine Batch erstellt, die bei nur Hardlink-Backups einen Hinweis "hardlinks_only" anhängt.

@Echo off
bckp.rbd
echo %date%>date1.txt
for /f "delims=. tokens=3,2,1" %%G in (date1.txt) do @echo %%I-%%H-%%G>date2.txt
set /p folder=<date2.txt
findstr /M /C:"Copied 0 files" S:\temp\bckp\%folder%\*.log>result.txt
for /f "delims=\ tokens=5" %%G in (result.txt) do echo %%G>found.txt

if exist result.txt (set /p var_result=<found.txt)

IF NOT DEFINED var_result (
GOTO nichts_geaendert
) ELSE (
GOTO WEITER )
:nichts_geaendert
echo %folder%>>S:\temp\bckp\log.txt
:WEITER

dir /b S:\temp\bckp\%folder%\*.log>filename.txt

set /p var_filename=<filename.txt

if %var_result% EQU %var_filename% goto BKP
echo FEHLER!!! result = %var_result% filename = %var_filename%
PAUSE
:BKP

echo %folder%_hardlinks only>>S:\temp\bckp\log.txt

del date1.txt
del date2.txt
del result.txt
del filename.txt
del found.txt

Doch damit habe ich ein Problem. Wenn bei der Verzweigung IF NOT DEFINED var_result
der Zweig 'nichts_geaendert' ausgeführt wird, dann werden die Delete-Befehle am Ende nicht ausgeführt. Ist das ein normal zu erwartendes Verhalten? Der WEITER-Zweig kommt ja nach 'nichts_geaendert', darum muss der doch auch ausgeführt werden, oder verstehe ich da was falsch? Könnte jemand sich das bitte anschauen?

Danke im Voraus!

---------- Beitrag hinzugefügt um 13:54 ---------- Vorheriger Beitrag war um 11:54 ----------

Es hat sich erledigt!
Wenn var_result nicht definiert ist führt die Zeile:

if %var_result% EQU %var_filename% goto BKP

zum Abbruch der Ausführung. Darum wurde der Tei mit del ... gar nicht ausgeführt!
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh