Kann ich ditto unter OS X verwenden, um zwei Ordner auf demselben Computer zu synchronisieren?

7894
Niko Nyman

Ist es möglich, das Befehlszeilendienstprogramm dittozu verwenden, um zwei Ordner auf einem einzigen OS X-Computer synchron zu halten? Mit anderen Worten, kopiert dito nur geänderte Dateien aus der Quelle und löscht gelöschte Dateien aus dem Ziel?

2

3 Antworten auf die Frage

6
fideli

Nein, dito kopiert nicht nur die geänderten Dateien. Es wäre besser, wenn Sie rsync dafür verwenden. Bombich, die Hersteller von Carbon Copy Cloner, haben auf ihrer Website einen großartigen Artikel über verschiedene Tools veröffentlicht.

Über dito:

Ditto ist ein Befehlszeilendienstprogramm, das im Lieferumfang von Mac OS X enthalten ist. Ditto behält die Berechtigungen, wenn es als Root ausgeführt wird, und behält die Ressourcengabeln standardmäßig bei. Ditto kann mit dem folgenden Schritt zum Klonen Ihres Systems verwendet werden:

sudo ditto -X / /Volumes/Backup 

Über rsync:

Mit rsync kann auch ein bootfähiger Klon erstellt werden. Zusätzlich zum einfachen Kopieren von Dateien bietet rsync auch die Möglichkeit, die Quell- und Zieldatenträger zu synchronisieren. Es können nur die geänderten Elemente kopiert werden, sodass nachfolgende Klone oder Sicherungen viel schneller sind. Die Syntax ist ziemlich einfach:

sudo rsync -xrlptgoEv --progress --delete / /Volumes/Backup 

Ich würde jedoch dringend empfehlen, ihr ausführliches rsync-Dokument zu lesen und auf rsync 3.0.7 zu aktualisieren (ich mache es mit MacPorts).

BEARBEITEN: OS X rsync 3.0.7 und Metadaten

Verwenden Sie den folgenden Befehl, um die Metadaten nach der Installation von rsync zu erhalten:

rsync -aNHAXx --protect-args --fileflags --force-change 

Dies ist aus dem Artikel von bombich.com . Alle diese Optionen sind möglicherweise nicht immer erforderlich. Dies kann jedoch zum Beispiel zum Sichern einer gesamten Festplatte verwendet werden. Dieser Artikel enthält auch einen Abschnitt zur Sicherungstreue, in dem die Ergebnisse der Backup-Bouncer-Testsuite für Rsync mit den oben genannten Optionen angegeben werden.

Nebenbei gesagt ist die Backup-Bouncer-Suite sehr praktisch, um sicherzustellen, dass Ihre Dateien ordnungsgemäß gesichert werden, unabhängig davon, welche Methode Sie verwenden.

Ich verwende rsync auf meiner Linux-Server-Box, war mir aber unter OS X aufgrund des HFS-Kramts vorsichtig, worüber ich mich nicht genug Gedanken gemacht habe. :) Gibt es eine Möglichkeit, sicherzustellen, dass ich einen HFS + -fähigen Rsync habe? Niko Nyman vor 14 Jahren 0
Gute Frage. Ich habe meinen Beitrag bearbeitet. Ich bin damit einverstanden und kann Ihnen versichern, dass bei Verwendung von rsync 3.0.7 und den in der Bearbeitung dargestellten Optionen alle Metadaten erhalten bleiben. Dies wurde mit der Backup-Bouncer-Suite getestet, und die Ergebnisse befinden sich im gleichen rsync-Artikel unter bombich.com: http://www.bombich.com/mactips/rsync.html fideli vor 14 Jahren 1
Ein paar Kompatibilitätswarnungen hier: rsync v3 (gemäß den Anmerkungen von Bombich) bewahrt besser die Attribute als Apples eingebautes rsync (v2.6.9 + Apple-Mods, was eigentlich nicht so schlimm ist), verfügt jedoch über inkompatible Befehlsoptionen (`- E` in der Apple-Version entspricht "-HNAX --fileflags" in v3); Um Verwirrung zu vermeiden, neige ich dazu, v3 als `rsync3` zu installieren. Außerdem können die beiden Versionen erweiterte Metadaten unterschiedlich über das Netzwerk übertragen, sodass Remote-Synchronisierungen zwischen Versionen unübersichtlich werden können. Gordon Davisson vor 14 Jahren 0
Vielen Dank! Ich denke, dass die Installation von v3 als rsync3 eine gute Idee ist, da ich mich auf rsync stütze, um Remote-Backups meines CentOS-Servers zu erstellen, und möchte das nicht durcheinander bringen. Niko Nyman vor 14 Jahren 0
Wenn das CentOS rsync die Version 3 ist und auf einem Dateisystem mit erweiterten Attributen (z. B. ext2-4) ausgeführt wird, funktioniert es mit v3 möglicherweise besser als mit der Apple-Version (obwohl ich denke, dass das Schlimmste ist, dass die xattrs passieren wird nicht übertragen) Sie können steuern, welche Remote-Version beispielsweise mit --rsync-path = / usr / local / bin / rsync3` verwendet wird Gordon Davisson vor 14 Jahren 1
1
Jeremy L

Ich glaube nicht, dass das auch tut, was Sie glauben.

Wenn Sie zwei Ordner synchronisieren möchten, ziehen Sie stattdessen rsync in Betracht.

1
yanokwa

rsync synchronisiert einseitig. Wenn Sie eine bidirektionale Synchronisierung wünschen, verwenden Sie unisono.

One way sync ist genug für mich. Niko Nyman vor 14 Jahren 0