37414
Goto Top

Robocopy Synchronisation ergibt Fehlermeldung

Hallo,

ich habe schon einige Sicherungen mit Robocopy gemacht.
Nun möchte ich 2 externe Festplatten miteinander synchronisieren.
Die Festplatten enthalten meine komplette Musiksammlung.
Eine hängt an einem Raspberry und ich greife per Tablet auf die Musik zu.
Die andere ist lediglich eine Backup-Platte... eben mit der Sicherung dieser Musik.

Ich synchronisiere beide ab und zu mit dem Programm "Synchredible". Hier hat der Vertreiber jedoch nun einen Fallstrick eingebaut, sodass die Sicherung nun häufig abbricht.
Deshalb wollte ich die Synchronisation nun per Robocopy durchführen.

Zur Erklärung:
- Die Hauptfestplatte, die am Raspi hängt, ist Laufwerk "H". Die Datenverzeichnisse liegen direkt darunter
- Die Backupfestplatte ist Laufwerk "G" und die gesicherten Daten liegen im Unterverzeichnis "Musik Name - komplett" (wobei im Original bei "Name" mein Name steht face-smile

Hier meine Robocopy-Batch:

@ echo off &setlocal

REM Mit dieser Datei werden die Musikdateien gesichert. 

robocopy "H:\" "G:\Musik Name - komplett" /MIR /COPYALL /V /NP /MT:4 /R:3 /W:10 /TEE /LOG:"D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  

echo.
echo.
echo.      * Mit ENTER wird der Sicherungsvorgang gestartet *
pause > NUL
echo.
echo.
:EOF

Führe ich diese Batch aus, erscheint folgende Fehlermeldung:

mwsnap004

Irgendwie ist da im CMD-Fenster was mit den Verzeichnissen total durcheinander gekommen.
Bei "QUELLE" wurde irgendwie Quelle + Ziel zusammengefaßt... aber auch nur Teile des Pfades.
Auch die Log-Datei, die im Verzeichnis "BACKUP" auf dem Desktop gespeichert werden soll, taucht im CMD-Fenster bei "ZIEL" auf.

Werdet Ihr schlau daraus?
Und... wo ist der Fehler?

Danke und Gruß,
imebro

Content-Key: 570703

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

Ausgedruckt am: 29.03.2024 um 04:03 Uhr

Mitglied: rubberman
rubberman 09.05.2020 aktualisiert um 23:27:23 Uhr
Goto Top
Quelle kann sein:
H: oder
H:\ oder
"H:" oder
"H:\\" oder
"H:\."
aber nicht
"H:\" oder irgendein anderer Pfad der auf \"endet, da die Standard Tokenizer, die üblicherweise in C oder C++ Programmen herangezogen werden, das "Feature" haben, Anführungszeichen die durch einen Backslash escaped wurden, im Argument beizubehalten, während alle anderen Anführungszeichen entfernt werden. Anders gesagt, enthält deine Quellangabe nun ein Anführungszeichen, das es in der Realität nicht gibt und nicht mal geben kann, da es zu den Zeichen gehört, die unter Windows in Pfaden und Dateinamen nicht erlaubt sind. Eine Verdopplung des Backslashes wie im 4. Beispiel, hebt dieses Verhalten auf.
Dasselbe gilt natürlich auch für das Ziel.

Steffen
Mitglied: cykes
cykes 10.05.2020 aktualisiert um 07:31:21 Uhr
Goto Top
Moin,

Zur Erklärung:
- Die Hauptfestplatte, die am Raspi hängt, ist Laufwerk "H". Die Datenverzeichnisse liegen direkt darunter
- Die Backupfestplatte ist Laufwerk "G" und die gesicherten Daten liegen im Unterverzeichnis "Musik Name - komplett" (wobei im Original bei "Name" mein Name steht
Da Du nicht genau gesagt hast, wie die Laufwerke G: und H: eingehängt sind, gehe ich jetzt mal davon aus, dass H: ein Netzlaufwerk per SMB ist und G: ein lokales Laufwerk an Deinem PC.
Dadurch ergeben sich noch weitere Fallstricke, da Du die Backup-Batch (offenbar) im User-Kontext ausführst.
Erstmal die Kommandozeile, die entsprechend den Ausführungen meines Vorredners funktioniert:
robocopy "H:" "G:\Musik Name - komplett" /MIR /COPYALL /V /NP /MT:4 /R:3 /W:10 /TEE /LOG:"D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  
allerdings benötigst Du für die /COPYALL Option erhöhte Rechte, wenn Du die Batch aber als Administrator ausführst, hast Du in dem Kontext das (vermeintliche) Netzlaufwerk H: nicht mehr.
Ich würde eventuell komplett auf UNC-Pfade umsteigen und anstatt "H:" als Quelle "\\<RASPI-IP oder HOSTNAME>\<Freigabe>" setzen. Dafür brauch der Administrator natürlich Zugriffsrechte auf die Freigabe am Raspi.
Alternativ kann man natürlich /COPYALL auch weglassen und die Batch im Userkontext ausführen.
Wobei alles ab Zeile 7 in Deiner Batch unnötig ist, der Backup-Vorgang läuft da bereits (bevor die Abfrage ausgeführt wird).


Gruß

cykes
Mitglied: 37414
37414 10.05.2020 aktualisiert um 10:37:53 Uhr
Goto Top
Hallo und danke für Eure super Erklärungen.

Ich habe jetzt die Batchdatei schon mal mit "H:" angepaßt.
Dazu habe ich nun auch der Übersichtlichkeit halber in der Befehlszeile auf %Quelle% %Ziel% umgestellt und natürlich darüber auch die entsprechenden Zuweisungen zu Quelle + Ziel vorgenommen.

Zur Erklärung:
- Die ext. USB-Festplatte (H: ) hängt direkt am Raspberry und enthält alle Musikdateien
- Die Backup-Festplatte (G: ) wird zum Backup ans Laptop angehängt.
- Ich kann auf meine Musikdateien auf VOLUMIO über den Raspberry PI3 auch zugreifen über ein gemountetes Laufwerk.
- Diesem habe ich den Laufwerksbuchstaben "V" gegeben (für Volumio).
- Der Pfad dahin ist "\\volumio\USB". Ich denke mal, dass Du (cykes) diese Angabe gemeint hast.
- Der Zugriff über den Browser geht über die Eingabe "http://volumio.local/browse".

Eine Sicherung direkt über den Raspi wäre natürlich ERHEBLICH angenehmer, da ich ansonsten immer den Raspi zuerst herunterfahren muss, um dann die ext. USB-Festplatte abhängen zu können. Danach müßte ich sie dann ans Laptop anhängen. - zusammen mit der Backup-Festplatte.

Das mit der Ausführung als Administrator und die Angaben bezüglich /COPYALL habe ich (noch) nicht verstanden...
Ich habe kürzlich etwas über die Angabe "/ZB" gelesen. Vielleicht würde das die Sicherung vereinfachen??

Welches Vorgehen würdet Ihr mir jetzt empfehlen, nachdem Ihr die Konfiguration kennt?

Im Moment sieht meine Batch so aus:

@ echo off &setlocal

REM Mit dieser Datei werden die Musikdateien gesichert. 

set Quelle="H:"  
set Ziel="G:\Musik Name - komplett"  
set Logfile="D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  

robocopy %Quelle% %Ziel% /MIR /COPYALL /V /NP /MT:4 /R:3 /W:10 /TEE /LOG:"D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  

echo.
echo.      * Mit ENTER wird der Sicherungsvorgang gestartet *
pause > NUL
echo.
:EOF

Gruß,
imebro
Mitglied: cykes
Lösung cykes 10.05.2020 aktualisiert um 14:07:52 Uhr
Goto Top
Hi,
Zur Erklärung:
- Die ext. USB-Festplatte (H: ) hängt direkt am Raspberry und enthält alle Musikdateien
Ok, da der Raspi aber unter Linux läuft, hat die Platte - solange sie am Raspi hängt - keinen Laufwerksbuchstaben (weder H noch irgendwas anderes). Lufwerksbuchstabn existieren unter Linux nicht. H: bekommt sie vermutlich nur, wenn Du die Platte an Dein Laptop/PC anklemmst.
- Die Backup-Festplatte (G: ) wird zum Backup ans Laptop angehängt.
Passt soweit. So hatte ich es ja auch verstanden.
- Ich kann auf meine Musikdateien auf VOLUMIO über den Raspberry PI3 auch zugreifen über ein gemountetes Laufwerk.
- Diesem habe ich den Laufwerksbuchstaben "V" gegeben (für Volumio).
- Der Pfad dahin ist "\\volumio\USB". Ich denke mal, dass Du (cykes) diese Angabe gemeint hast.
Das hatte ich mit UNC-Pfad gemeint, H: kannst Du in Deiner Batch nicht verwenden (s.o.), alternativ geht natürlich V: oder eben der UNC-Pfad.
Ich würde den UNC-Pfad nehmen.
- Der Zugriff über den Browser geht über die Eingabe "http://volumio.local/browse".
Der ist für Deine Batch irrelevant.
Eine Sicherung direkt über den Raspi wäre natürlich ERHEBLICH angenehmer, da ich ansonsten immer den Raspi zuerst herunterfahren muss, um dann die ext. USB-Festplatte abhängen zu können. Danach müßte ich sie dann ans Laptop anhängen. - zusammen mit der Backup-Festplatte.
Genau das hatte ich vermutet, ist natürlich umständlich und nicht nötig. Wobei natürlich das Musikstreaming während des Backups ggf. etwas leiden könnte (Unterbrechungen etc.)
Das mit der Ausführung als Administrator und die Angaben bezüglich /COPYALL habe ich (noch) nicht verstanden...
Ich habe kürzlich etwas über die Angabe "/ZB" gelesen. Vielleicht würde das die Sicherung vereinfachen??
/COPYALL kopiert auch Besitzer und Zugriffsrechte (ACLs) vollständig mit, für das Backup brauchst Du das eigentlich nicht. COPYALL geht aber nur als Administrator und wird auch bei der Platte am Raspi wenig bringen, lass es einfach weg, würde ich empfehlen.

Im Moment sieht meine Batch so aus:
[...]
Nach wie vor bringt alles ab Zeile 10 nix, der Kopiervorgng läuft da bereits. Die Abfrage mit ENTER ergibt somit keinen Sinn, außer dass nach Beendigung des Backups nochmal die Batch angehalten wird -> unnötig. face-wink

Gruß

cykes
Mitglied: 37414
37414 10.05.2020 aktualisiert um 12:02:46 Uhr
Goto Top
Danke nochmals für die weitere Erläuterung.

Habe jetzt die Quelle umgestellt auf "\\volumio\USB". Ich nehme an, dass Du es auch so gemeint hattest mit UNC-Pfad.
Den "/COPYALL"-Befehl habe ich auch gelöscht.

Dann wäre das hier meine momentane Batch:

@ echo off &setlocal

REM Mit dieser Datei werden die Musikdateien gesichert. 

set Quelle="\\volumio\USB"  
set Ziel="G:\Musik Name - komplett"  
set Logfile="D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  

robocopy %Quelle% %Ziel% /MIR /V /NP /MT:4 /R:3 /W:10 /TEE /LOG:"D:\Desktop\BACKUP\Robocopy-Logs\Musik_LOG.txt"  

:EOF

...richtig so? face-smile

Gruß,
imebro
Mitglied: cykes
cykes 10.05.2020 um 12:10:26 Uhr
Goto Top
Zitat von @37414:
...richtig so? face-smile
Probieren geht über ... nachfragen face-wink
Sollte aber passen.

Gruß
cykes
Mitglied: 37414
37414 10.05.2020 um 12:32:11 Uhr
Goto Top
Danke Dir...

Soweit ich weiß, wird die von mir erstellte Robocopy-Batch ja dann auch immer nur die veränderten, bzw. neuen Dateien sichern.
Ist das korrekt so?

Gruß,
imebro
Mitglied: 144260
144260 10.05.2020 aktualisiert um 12:38:08 Uhr
Goto Top
Zitat von @37414:
Soweit ich weiß, wird die von mir erstellte Robocopy-Batch ja dann auch immer nur die veränderten, bzw. neuen Dateien sichern.
Ist das korrekt so?
Logisch, das ist ja der Vorteil zu xcopy & co.
https://de.wikibooks.org/wiki/Datensicherung/_Werkzeuge/_Kopieren/_ROBOC ...
Vergleich mit dem Zielverzeichnis
Im Unterschied zu COPY und XCOPY vergleicht ROBOCOPY jede zu kopierende Datei mit dem Zielverzeichnis. Falls es im Ziel eine identische Datei gibt, wird sie übersprungen. Die Zeitersparnis ist beträchtlich. 
Mitglied: 37414
37414 10.05.2020 aktualisiert um 13:14:59 Uhr
Goto Top
Super! Danke für den Link und danke für die Hilfe.

Habe jetzt noch eine weitere Frage zur Sicherung der SD-Karte im Raspberry. Aber dazu werde ich sinnvoller Weise einen neuen Thread erstellen.

LG
imebro