Grundlegender Befehl rsync für bitidentische Kopien

13

Soweit ich das verstehe, lautet der folgende Befehl:

sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination

Ist das alles, was ich brauche, um eine einfache Synchronisation von Dateien von einem Ort zum anderen zu erstellen? Oder macht der obige Befehl im Hintergrund noch etwas, wovon ich nichts weiß? Erstellt es zum Beispiel eine Art Versionsverwaltung, bei der ich eine vergangene Zeit angeben kann, um Dateien abzurufen, wie lange sie vergangen sind?

Dies ist eine Funktion, die ich zum gegenwärtigen Zeitpunkt nicht aktivieren möchte. Ich möchte nur eine bitidentische Kopie der Dateien von einem Ort zum anderen. Kann ich einen dieser Parameter entfernen oder muss ich weitere Parameter hinzufügen, um die Kopien ohne Versionierung bitidentisch zu machen? Grundsätzlich möchte ich keine Backups erstellen, wie das Mac Time Machine Backup-System Backups erstellt.

oshirowanen
quelle

Antworten:

15

Rsync führt keine Versionierung durch oder speichert keinen Verlauf, es sei denn, Sie werden mit Optionen wie angewiesen --backup. Es gibt Backup-Tools, die rsync verwenden, aber rsync selbst ist kein Backup-Tool, mehr als vier Räder machen ein Auto. Rsync kümmert sich nur um die Synchronisation.

In Bezug auf die Optionen, die Sie verwendet haben oder verwenden möchten:

  • -abedeutet „fast alles kopieren“ (Verzeichnisse rekursiv kopieren, symbolische Links als solche kopieren, alle Metadaten beibehalten usw.). Verwenden Sie diese Option, sofern Sie nichts Ungewöhnliches tun.
  • Darüber hinaus -amöchten Sie möglicherweise -HHardlinks, -AACLs ( -anur traditionelle Unix-Berechtigungen) oder -Xerweiterte Attribute beibehalten.
  • -rist bereits enthalten in -a.
  • -v bedeutet wortreich.
  • -z ist für eine lokale Kopie nutzlos.
  • --delete löscht Dateien im Ziel, die in der Quelle nicht vorhanden sind.

Dies ist also der grundlegende Befehl, um das Ziel mit der Quelle identisch zu machen (ohne feste Links, ACLs und erweiterte Attribute):

rsync -a --delete SOURCE/ DESTINATION/
Gilles 'SO - hör auf böse zu sein'
quelle
3

Dieser Befehl sollte alles sein, was Sie brauchen. rsyncStandardmäßig wird der sogenannte Schnellprüfungsalgorithmus verwendet:

Rsync findet Dateien, die mit einem "Quick Check" -Algorithmus (standardmäßig) übertragen werden müssen, der nach Dateien sucht, deren Größe oder die zuletzt geänderte Zeit geändert wurde. Alle Änderungen an den anderen beibehaltenen Attributen (wie von den Optionen angefordert) werden direkt in der Zieldatei vorgenommen, wenn die Schnellprüfung anzeigt, dass die Daten der Datei nicht aktualisiert werden müssen.

Dies ist in den meisten Anwendungen häufig ausreichend. Es ist schneller als die alternative Methode, mit der für jede Datei eine Prüfsumme berechnet wird. Diese zweite Methode garantiert die Verfolgung von Unterschieden, die bei der ersten Methode auftreten können.

In jedem Fall werden rsyncnicht mehrere Kopien von Dateien gespeichert, sondern es handelt sich um einen groben Dateikopierer / Synchronisierer, der ein Verzeichnis gemäß den von Ihnen angegebenen Optionen mit einem anderen synchronisiert.

Prüfsummenmethode

Wenn Sie neugierig sind, hier ist die Umschaltung, mit der ich rsyncdiese Art der Synchronisierung durchführe:

$ rsync -avvz -O --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    "SRC" "DEST"

Dies erzeugt diese Art von Ausgabe:

2014/02/20 09:51:49 INFO sending incremental file list 
2014/02/20 09:51:49 INFO delta-transmission disabled for local transfer or --whole-file 
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [.d..t......] (Last Modified: 2014/02/19-15:51:34) (bytes: 0         ) ./
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [>f+++++++++] (Last Modified: 2014/02/19-15:51:33) (bytes: 27981892  ) somefile.zip
      27.98M 100%   82.27MB/s    0:00:00 (xfer#1, to-check=0/2) 0
2014/02/20 09:51:49 INFO total: matches=0  hash_hits=0  false_alarms=0 data=27981892 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25205] (sender) heap statistics: 
2014/02/20 09:51:49 INFO   arena:        1060864   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            1   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             4 
2014/02/20 09:51:49 INFO   hblks:              1   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        135168   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:       1196032   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          304 
2014/02/20 09:51:49 INFO   uordblks:      667008   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      393856   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      393552   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25207] (server receiver) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         286720   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             3 
2014/02/20 09:51:49 INFO   hblks:              3   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        667648   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        954368   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          224 
2014/02/20 09:51:49 INFO   uordblks:      174480   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      112240   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      102352   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25206] (server generator) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         135168   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             6 
2014/02/20 09:51:49 INFO   hblks:              2   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        401408   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        536576   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          400 
2014/02/20 09:51:49 INFO   uordblks:       82960   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:       52208   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:       32816   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO Number of files: 2 
2014/02/20 09:51:49 INFO Number of files transferred: 1 
2014/02/20 09:51:49 INFO Total file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Total transferred file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Literal data: 27.98M bytes 
2014/02/20 09:51:49 INFO Matched data: 0 bytes 
2014/02/20 09:51:49 INFO File list size: 93 
2014/02/20 09:51:49 INFO File list generation time: 1.277 seconds 
2014/02/20 09:51:49 INFO File list transfer time: 0.000 seconds 
2014/02/20 09:51:49 INFO Total bytes sent: 27.99M 
2014/02/20 09:51:49 INFO Total bytes received: 34 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO sent 27.99M bytes  received 34 bytes  11.20M bytes/sec 
2014/02/20 09:51:49 INFO total size is 27.98M  speedup is 1.00 
slm
quelle
3

Normalerweise benutze ich den Befehl aus dieser Antwort . Der Vorteil ist, dass auch erweiterte Attribute und ACLs erhalten bleiben.

rsync -avxHAX --progress / /new-disk/

Die Optionen sind:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)
Benedikt Köppel
quelle