.png)
Zusammenfassung:
Ich verwende das folgende Setup, um Daten auf einem Synology NAS über rsync auf einer Remote-Festplatte zu sichern.
- Erstes lokales Backup: rsync auf dem Synology NAS auf die Festplatte initialisiert (auf dem NAS gemountet).
- Zukünftige Remote-Backups: rsync wird auf einem Mac auf die Festplatte initialisiert und ist jetzt auf dem Mac an einem Remote-Standort gemountet.
Problem: Ich erhalte zwei Kopien aller Daten (Dateien oder Ordner) mit Sonderzeichen.
Frage: Gibt es eine Möglichkeit, denselben grundlegenden Prozess (zuerst lokale Sicherung über NAS, Rest über Mac, mit rsync) ohne das oben genannte Problem zu verwenden?
Spielstatus: Was unten folgt, ist ziemlich lang und enthält zwei Bearbeitungen, aber obwohl das Problem weiter analysiert wird, ist es noch nicht gelöst.
Gesamte Beschreibung:
Ich habe ein Setup, das schon seit Ewigkeiten läuft. Tatsächlich, seit ich es geschafft habe, ein anfängliches Sonderzeichenproblem zu lösen (ausführlich hier), danach verwende ich die Option „--iconv=utf-8-mac,utf-8“ für rsync auf dem Mac. Das Setup ist wie folgt:
Standort 1: Synology NAS
Standort 2 (in einer weit weit entfernten Galaxie): Mac mit externer Festplatte (Mac OS Journaled)
Aufgabe: rsync-Job auf dem Mac, der Ordner vom NAS (Standort 1) auf die externe Festplatte (Standort 2) zieht.
Ich plane nun, an Standort 2 eine neue Festplatte (ebenfalls Mac OS Journaled) einzurichten. Da etwa 2 TB Daten zu übertragen sind, habe ich Folgendes getan:
Standort 1: Dank der Wunder von USB wurde die neue Festplatte an das NAS angeschlossen.
Standort 1: Die Daten wurden mit einem rsync-Job auf dem NAS auf die neue Festplatte übertragen
Reiste in die weit entfernte Galaxie, die wir hier Standort 2 nennen
Standort 2: Initialisierung eines eingeschränkten Rsync-Pull-Jobs vom Mac, jetzt mit angeschlossener neuer Festplatte.
Problem: Aus irgendeinem Grund wurde Schritt (4) nicht in 2 Sekunden ohne Änderungen abgeschlossen, sondern es wurde für eine ganze Menge Dateien die Meldung „Datei ist verschwunden: …[angegebener Dateispeicherort]“ angezeigt. Dann begann es, Ordner und Dateien auf die Festplatte zu kopieren – obwohl sie bereits dort waren! 70 GB später hatte es, soweit ich es beurteilen konnte, eine komplett redundante Kopie aller Ordner erstellt, die Sonderzeichen im Namen hatten (und eine redundante Kopie aller Dateien mit Sonderzeichen im Namen in Ordnern, die keine Sonderzeichen im Namen hatten). Beispiel:
drwxrwxrwx 5 _unknown _unknown 170 Aug 7 2013 Pippi Långstrump-Pippi i Söderhavet
drwxrwxrwx 5 _unknown _unknown 170 Aug 7 2013 Pippi Långstrump-Pippi i Söderhavet
Diese beiden Ordner scheinen völlig identisch zu sein, werden jedoch nebeneinander als zwei verschiedene Ordner aufgeführt. Wenn ich die Mac-GUI verwende, kann ich jeden von ihnen aufrufen und sehen, dass sie dieselben (qualitativ identischen) drei Spuren enthalten (ich weiß nicht einmal, wie ich sie mithilfe der Befehlszeile trennen kann, aber mit der GUI kann ich visuell erkennen, dass ich unterschiedliche Ordner „aufrufe“). Und sie sind nicht nur virtuell, da die Gesamtgröße der Teilmenge der Daten von 64 GB auf 82 GB gestiegen ist.
Was ist passiert? Für mein ungeübtes Auge scheint es, als könne der auf dem Mac initialisierte rsync-Prozess nicht „sehen“, dass die Quelldateien auf dem NAS bereits auf der Zielplatte vorhanden sind, und sie dort erneut ablegen. Wenn das Mac-Terminal die Datei- und Ordnernamen anzeigt, verwendet es offensichtlich dieselben Symbole, muss sie aber „darunter“ dennoch als unterschiedlich interpretieren, da das Dateisystem dies sonst nicht zulassen würde.
Aber das ist noch nicht alles. Wenn ich versuche, das System mit der Option --delete dazu zu bringen, nur einen der Ordner/Dateien mit Sonderzeichen zu behalten, passiert einfach alles von vorne. Ordner werden zwar gelöscht, aber neue sind Kopien, und am Ende habe ich immer noch Duplikate und 82 GB in der Teilmenge statt 64 GB.
Was ist los und was kann ich dagegen tun?
BEARBEITEN 11. September: Der weise Tomáš Pospíšek (mit Sonderzeichen wohl gut vertraut, nehme ich an ;) riet mir, „unter die Haube“ zu schauen, und so verwendete ich seinen Befehl (auf Ronja statt auf Pippi, da ich zu viele verschiedene Pippi-Ordner hatte). Ein einfaches „ls -l“ gab mir:
drwxrwxrwx 2 _unknown _unknown 68 Aug 7 2013 Ronja Rövardotter
drwxrwxrwx 2 _unknown _unknown 68 Aug 7 2013 Ronja Rövardotter
wohingegen
sh-3.2# ls -l Ronja* | hexdump -C
führte zu:
00000000 52 6f 6e 6a 61 20 52 6f cc 88 76 61 72 64 6f 74 |Ronja Ro..vardot|
00000010 74 65 72 3a 0a 0a 52 6f 6e 6a 61 20 52 c3 b6 76 |ter:..Ronja R..v|
00000020 61 72 64 6f 74 74 65 72 3a 0a |ardotter:.|
oder, wenn ich es etwas präzisiere:
52 6f 6e 6a 61 20 52 6f cc 88 76 61 72 64 6f 74 74 65 72 3a 0a 0a |Ronja Ro..vardotter:..
52 6f 6e 6a 61 20 52 c3 b6 76 61 72 64 6f 74 74 65 72 3a 0a |Ronja R..vardotter:.
Mit anderen Worten: Sie sind nicht identisch, sondern werden nur oberflächlich als solche dargestellt.
Danke dafür. Aber was soll ich dagegen tun? Gibt es eine Möglichkeit, die Platte zu formatieren (z. B. Case-Sensitive Journaled), damit sowohl das NAS als auch mein Mac richtig auf die Platte schreiben können? Oder kommt man nicht umhin, in den sauren Apfel zu beißen, also die Platte an einen lokalen Mac anzuschließen (Standort 1) und das erste Backup über Ethernet zu machen? Das würde im Vergleich zur USB 3-Verbindung ewig dauern, aber immerhin wäre das Backup sowohl lokal als auch remote „Mac-interpretiert“. Was schlägst du vor?
BEARBEITEN 14. September: Der hilfsbereite Tomáš schlug außerdem vor (über einen Kommentar unten), dass ich versuchen sollte, eine einzelne Datei mit Sonderzeichen im Namen per rsync zu synchronisieren, um zu sehen, was dann passiert (und er schlägt einen Workaround vor). Leider passiert das, dass ich auf der Zielfestplatte zwei Dateien mit scheinbar identischen Namen habe, aber beim Hexdumping sieht man, dass sie unterschiedlich codiert sind. Mein Problem war dann, dass ich scheinbar beide Dateien nicht richtig löschen konnte. Das heißt, als ich sie mit „rm“ löschte, sodass keine Dateien sichtbar waren („ls -l“ listete sie nicht auf), konnte ich die Dateien (oder Ordner; dasselbe dort) immer noch im Mac Finder sehen. Das passierte sogar, wenn ich das System neu startete usw., also waren die Dateiinformationen irgendwie da und konnten im Mac Finder angezeigt werden, obwohl sie nicht in einer Befehlsliste auftauchten.
An diesem Punkt habe ich sozusagen das Handtuch geworfen und mich für die feige Lösung entschieden, einfach die Festplatte zu löschen und die Daten wieder auf die ursprüngliche Site (Standort 1) über einen Mac und denselben rsync-Befehl zu übertragen. Das hat zwar viel länger gedauert, was die Übertragung angeht, aber das Problem direkt „gelöst“. Jetzt habe ich alles eingerichtet und es funktioniert wie am Schnürchen.
Das Problem als solches ist jedoch noch nicht gelöst. Das heißt, ich würde gerne wissen, wie ich:
- Daten von einem Synology NAS mit einem auf dem NAS initialisierten rsync-Prozess auf eine externe Festplatte (Mac OS Journaled, auf dem NAS gemountet) übertragen
- Sichern Sie diese Daten auf einem externen Standort mit einem rsync-Befehl auf einem Mac,
auf dem die Festplatte gemountet ist.
Wenn es jemand weiß, beantworten Sie die Frage und ich werde Sie sofort als Problemlöser (und Held) kennzeichnen!
HINWEIS: Diese Frage ist mittlerweile selbst so etwas wie eine kleine „Was ich letzten Sommer gemacht habe“-Geschichte, deshalb habe ich die obige Zusammenfassung neu geschrieben, damit potenzielle Problemlöser die Möglichkeit haben, zu erfahren, was die Kernfrage ist.