• 24.04.2024, 14:43
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Datensicherung per Batch (robocopy oder Ähnlich)

Montag, 9. Februar 2009, 18:17

Hallo Leute!

Brauche mal gerade Hilfe von unseren Batch-Profis, ich stehe etwas auf dem Schlauch :rolleyes: :P

Ich will meinen "Datenserver" auf externe Festplatten sichern...Verbaut ist eine 1TB Platte welche erst auf eine andere gespiegelt werden soll und dann soll auf eine zweite (500GB) Platte eine differenzielle Sicherung gefahren werden, bis das Delta halt zu groß wird :thumbsup:

Das mit dem differenziellen Backup ist auch kein Problem (robocopy), das klappt...leider fehlt mir eine Batch-Variante die ALLES von der Festplatte kopiert UND dabei das Archiv Bit in den Quellen raus nimmt...das scheint robocopy aber nicht zu können...hat jemand ne Idee wie ich alles auf die 1TB Platte bekomme und dabei auf den Quellen das Archiv Bit weg bekomme?! Scheint echt ne harte nuss zu sein...oder ich denke einfach nur zu kompliziert :rolleyes:

Danke für die Hilfe :D

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

Dienstag, 10. Februar 2009, 09:41

Mh, keine Batch-Experten hier?!

Naja, ich glaub ich habe ne Idee. Ist zwar nicht so die 100%-Lösung die ich gerne hätte, aber funktioniert notdürftig.

Wenn ich das Ganze getestet habe, werd ich mal den Quelltext hier posten....vielleicht kann die Batch ja sonst noch wer gebrauchen.

Gruß, Matthias

PS: Wer noch tolle Einfällt zu dem Thema hat, darf sie natürlich gerne posten... :D :D :D
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

zigzag

Senior Member

Dienstag, 10. Februar 2009, 09:58

Hier im Forum wurde vor einiger Zeit ein kleines Script gepostet dass ich mir entsprechend angepaßt habe:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
:@ECHO OFF
SETLOCAL
 
SET _source=C:\DEINE_QUELLE\
SET _dest=Z:\DEIN_ZIEL\
 
SET _what=/S /ETA /XO
:: /S :: Copies subdirectories (excluding empty ones)..
:: /ETA :: Shows estimated time of completion for copied files.
:: /XO :: Excludes Older files.

SET _options=/R:0 /W:0 /LOG:RoboCopy.log /TEE
:: /R:n :: number of Retries
:: /W:n :: Wait time between retries
:: /LOG :: Output log file
:: /TEE :: Displays output in the console window, in addition to directing it to the log file specified by /LOG or /LOG+.

ROBOCOPY %_source% %_dest% %_what% %_options%


Folgendes wird getan:
- Subdirectories werden kopiert (jedoch keine leeren Ordner).
- Es werden nur neuere Files kopiert.
- Der Kopiervorgang läßt sich in einer DOS-Box verfolgen, und es wird ein LOG-File angelegt.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »zigzag« (10. Februar 2009, 10:01)

Adult Gamers Germany
zigzag

Dienstag, 10. Februar 2009, 10:40

Dankeschön! :)

Aber soweit bin ich auch schon. Das Problem ist dass ich an die Grenzen von robocopy stoße....

Wenn ich nämlich jetzt nach diesem "Full Backup" mit robocopy und der Option /A darüber gehe, wird (fast) der ganze Inhalt der 1TB HDD noch mal kopiert.

Robocopy kopiert im ersten Schritt zwar brav den gesamten HDD Inhalt und schreibt auch ein Log, aber leider bleibt das Archivbit in den Quellen erhalten, und somit kann ich nicht differenziell sichern. ;( :cursing:

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

Smoern

Senior Member

Dienstag, 10. Februar 2009, 11:00

Wie du schon schreibst, Robocopy kann das einfach nicht. Quick and äußerst dirty, wäre es nach dem Prozedere das Archivbit mit Attrib manuell zu ändern.
Nich ganz so dirty wäre es das Attrib nur auf die erfolgreich kopierten Files loszulassen. Evtl. könnte man dazu das Robocopy Log verwenden...

BtW: Was spricht generell gegen ntbackup ???

Dienstag, 10. Februar 2009, 11:45

Hey.

Ja so ähnlich ist meine "nicht 100%" Lösung auch...

Ich setzte zuerst (!) alle Archiv-Bits auf 0 und sichere dann...hat den Vorteil, dass Dateien die während der Sicherung erstellt werden (und somit nicht von robocopy kopiert werden) nach der Sicherung trotzdem noch ihr Archiv-Bit haben....leider haben deine und meine Variante das selbe Problem: Datein die nicht gesichert werden konnten (warum auch immer) haben nachher kein Archiv-Bit mehr, auch wenn sie garnicht gesichert wurden.

NTBackup mag ich persönlich nicht so gerne, da ich im Privaten meine Datein gerne "einzeln" in der Sicherung sehe....wenn das Archiv nicht mehr lesbar ist, ist alles hin...so könenn mir nur einzelne Dateien abhanden gehen....

Ist aber wohl ehr ne persönliche vorliebe, als ein wirklicher Grund gegen NTBackup...

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

zigzag

Senior Member

Dienstag, 10. Februar 2009, 14:21


Wenn ich nämlich jetzt nach diesem "Full Backup" mit robocopy und der Option /A darüber gehe, wird (fast) der ganze Inhalt der 1TB HDD noch mal kopiert.





Deshalb /XO...
Was /A über das Attribut erledigt, löse ich über die Datumsangabe. Funktioniert ohne Problem. Wenn du mit dem oben aufgeführten Script ein Vollbackup erstellst, und im Anschluß Dateien änderst und/oder hinzufügst, werden nach erneutem Aufruf der Batchdatei nur die geänderten und neuen Daten kopiert.

Edit:
Wenn die Sicherung (Ziel) exakt wie die Quelle aussehen soll, erreicht man das über /PURGE...
!!!VORSICHT!!! Alle Daten die in der Quelle nicht enthalten sind, werden auf dem Ziel gelöscht!

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »zigzag« (10. Februar 2009, 14:35)

Adult Gamers Germany
zigzag

Dienstag, 10. Februar 2009, 18:24

Danke, aber du hast meine Situation nicht richtig gelesen/verstanden.


Ich mache ein volles Backup von einer 1TB Platte auf die andere (bei dem ich mir erhofft hatte, dass das Archiv-Bit entfernt wird) und mache ab dann eine Sicherung der neuen/geänderten Daten auf eine zweite 500GB Platte.....

Dass ich mit /XO nur nur neue Daten kopiere weiß ich, bring mir in dieser Situation aber leider nix...

Ich denke ich werd erstmal mir der "Attrib-Variante" arbeiten....is zwar nicht der sauberste weg, aber ein Blick in das Logfile auf nicht kopierte Dateien deckt dann auch quasi alle Eventualitäten ab...muss dann halt nur bei nicht kopierten Daten das Archiv-Bit wieder setzen.

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

zigzag

Senior Member

Dienstag, 10. Februar 2009, 18:29

Schade, hätte dir gern geholfen.
Adult Gamers Germany
zigzag

Dienstag, 10. Februar 2009, 18:31

Da bin ich dir auch sehr dankbar für :)
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

zigzag

Senior Member

Dienstag, 10. Februar 2009, 19:47

Hab mich ein bißchen umgesehen. Hier zwei Links in denen differential backups mit Schalter /B erzeugt werden.
- der Beitrag von bash666
- und von jjwaldick

Wenn das nicht hinhaut, bin ich mit meinem Latein am Ende.

Edit:
Hier nochwas zum Schalter /M.
Hast du eine Beschreibung zu den Schaltern?

/M: Copies only files with the archive attribute set and then resets (turns off) the archive attribute in the source files.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »zigzag« (10. Februar 2009, 20:15)

Adult Gamers Germany
zigzag

Dienstag, 10. Februar 2009, 21:03

Hey, tausend Dank!

Das robocopy.doc hatte ich schon.


Hab das jetzt erstmal so gelöst:

Full Backup:

Quellcode

1
2
3
4
5
6
7
@echo off
set dateneu=%date:~6,4%-%date:~3,2%-%date:~0,2%
d:
attrib /S -A
s:
robocopy D:\ S:\Backup\ /mir /R:3 /TEE /W:5 /LOG:Full_%dateneu%.txt /NP
pause


Diff Backup:

Quellcode

1
2
3
4
5
6
7
@echo off
set dateneu=%date:~6,4%-%date:~3,2%-%date:~0,2%
echo %dateneu%
mkdir %dateneu%
attrib %dateneu% /S -S -H -R
robocopy D:\ S:\%dateneu%\ /R:3 /TEE /W:5 /LOG:Diff_%dateneu%.txt /NP /A /S
pause



Funktioniert soweit ganz gut :)
Das mit dem Arcivbit im Full Backup ist zwar nicht sonderlich elegant, aber geht...

Gruß, Matthias
FSK 12- Der Held bekommt das Mädchen FSK 16- Der Bösewicht bekommt das Mädchen FSK 18- Jeder Darsteller bekommt das Mädchen

Hanni

Junior Member

Donnerstag, 12. Februar 2009, 15:44

@zigzag
Gehört zwar nicht direkt hier rein aber was bewirkt denn in deiner Batch das "setlocal"

Ich habe mir die Ausgabe von "setlocal /?" durchgelesen, aber ganz schlau werde ich daraus nicht.



Gruß

Donnerstag, 12. Februar 2009, 20:30

BMW 320d (E46)