Zum Inhalt springen

rsync

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Diskussion:/usr/share/man » Dateisystem/Eigenschaften » Smart » rsync
Version vom 16. März 2025, 02:31 Uhr von Dirkwagner (Diskussion | Beiträge) (Beschreibung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

rsync - Synchronisation von Verzeichnisbäumen (remote sync)

Beschreibung

Verzeichnisse Synchronisieren

rsync synchonisiert zwei Verzeichnisse

  • lokal oder remote
Größe und Erstellungszeit

Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen

  • sodass nur die Dateien behandelt werden müssen, bei denen es Änderungen gegeben hat
  • Sind Quelle und Ziel lokale Pfade, werden die betroffenen Dateien normal kopiert
Delta-Transfer-Algorithmus

Wenn Quelle oder Ziel remote (SSH/rsync-daemon)

  • Nur geänderte Teile von Dateien werden übertragen
Backup

Aufgrund dieser Eigenschaften ist rsync optimal geeignet, um Sicherungen durchzuführen

  • Für regelmäßige automatisierte Sicherungen eignen sich Programme wie rsnapshot oder Back In Time, die ihrerseits wieder rsync verwenden
  • Wenn man allerdings Verzeichnisse zwischen zwei Systemen wie Laptop und Desktop-Rechner synchronisieren möchte, sind Programme wie Unison besser geeignet
Eigenschaften
  • unidirektional
  • Delta-Transfer-Algorithmus
    • Nur geänderte Teile einer Datei werden übertragen
  • Quick-Check-Algorithmus
    • Größe und Änderungszeit von Dateien in Quelle und Ziel werden verglichen
  • Daten können mit SSH verschlüsselt übertragen werden
  • Verzeichnisse können auf unterschiedlichen Rechnern liegen
  • wird häufig für die Erstellung von Backups verwendet

Installation

sudo apt install rsync

Aufruf

rsync [OPTIONEN] QUELLE ZIEL

Optionen

Unix GNU Parameter Beschreibung
-a Archivmodus (-rlptgoD)
-u überspringt Dateien, die im Ziel neuer sind als in der Quelle
-v zeigt während des Synchronisierens alle ausgeführten Schritte an
-x berücksichtigt nur Objekte, die sich im gleichen Dateisystem befinden
-P aktiviert folgende Optionen: --progress Fortschrittsanzeige beim Transfer anzeigen --partial Fortsetzung des Transfers bei Abbruch
-n simuliert nur was passieren würde ("dry run")
--bwlimit z. B.  --bwlimit=30 limitiert die Bandbreite, die genutzt werden soll (Hilfreich, da rsync sonst die komplett verfügbare Bandbreite in Anspruch nimmt und sonstige Anwendungen damit blockiert)
-z aktiviert die Komprimierung für die Datenübertragung (diese Option ist sinnvoll, wenn zwischen Quelle und Ziel eine langsame Verbindung besteht)
-e damit lässt sich die remote shell auswählen, die meisten werden SSH nutzen also -e ssh
--exclude= Muster schließt ein bestimmtes Muster von der Sicherung aus
--exclude=ORDNER1

--exclude=ORDNER2

schließt ORDNER1 und ORDNER2 von der Sicherung aus (bezieht sich immer auf QUELLE und deren Unterordner!)
--delete vergleicht Quellverzeichnisse und Zielverzeichnisse und sorgt dafür, dass Dateien, die im Quellverzeichnis nicht (mehr) vorhanden sind, im Zielverzeichnis gelöscht werden
  • Dies kann dazu führen, das man ungewollt Dateien löscht, die man aber noch in der Sicherung behalten möchte
-b sorgt dafür, dass durch die Option --delete gelöschte sowie alle veränderten Objekte gesichert werden (siehe dazu folgende Option --backup-dir=)
--backup-dir=Verzeichnis kann man ein Verzeichnis für die gelöschten Objekte angeben, siehe Option -b
-c sorgt dafür, dass zum Vergleich der Dateien Checksummen gebildet werden und nicht nur die Größe und der Timestamp verglichen werden
  • Diese Methode kann etwas länger dauern
--iconv sorgt für eine Konvertierung der Dateinamen zwischen Systemen mit verschiedenen Codepages
  • Dieser Parameter kann erforderlich werden, wenn Dateien mit z. B.  Umlauten im Namen übertragen werden
--stats zeigt einen ausführlicheren Report am Ende einer Übertragung an
--size-only sorgt dafür, dass Dateien mit gleicher Dateigröße übersprungen werden, unabhängig davon, ob sie sich in anderen Eigenschaften unterscheiden
  • Hilfreich bei Sicherungen auf Datenträger mit den Dateisystemen FAT oder NTFS, welche die unter Linux für die Verwaltung der Besitz- und Zugriffsrechte verwendete UNIX-FACL nicht unterstützen (weitere Einschränkungen)
Achtung

Vor dem Ausführen von rsync muss sicher sein, dass die korrekten Optionen und Parameter angegeben wurden

  • Fehlerhafte Anwendung kann zu Datenverlust führen
  • Dry run!

Archivmodus

Zur Beibehaltung von Dateieigenschaften kann die Option -a genutzt werden

Sie umfasst die Optionen -rlptgoD

Unix Beschreibung
-r kopiert Unterverzeichnisse
-l kopiert symbolische Links
-p behält Rechte der Quelldatei bei
-t behält Zeiten der Quelldatei bei
-g behält Gruppenrechte der Quelldatei bei
-o behält Besitzrechte der Quelldatei bei (nur root)
-D behält Gerätedateien der Quelldatei bei (nur root)

Argumente

rsync [OPTIONEN] QUELLE ZIEL

Anstelle des Platzhalters QUELLE gibt man den Ort an aus dem gelesen werden soll und das ZIEL bestimmt den Ort in den rsync zu kopieren hat

  • Gibt man nur einen Parameter an, so wird dieser als Ziel interpretiert und es gilt das aktuelle Verzeichnis als Quelle
rsync -a /home/user /data/backup

Kopiert man das gesamte Homeverzeichnis, so werden auch private Daten, wie die privaten Schlüssel von SSH und GnuPG kopiert

rsync kann nur das kopieren, wozu der Nutzer auch Rechte hat, z. B.  bei

rsync -a /etc ZIEL

kann es zu Problemen kommen

Falls nicht alles kopiert wird, kann man versuchen, von "Hand" die Daten mit cp bzw. scp zu kopieren oder man gibt sich durch das vorangestellte sudo Root-Rechte

sudo rsync -a /etc ZIEL

Vorsicht ist geboten, wenn man versucht, Konten wechselseitig zu sichern

  • Man sollte darauf achten, dass man nicht das Backup von A auf B wieder auf A kopiert

Nicht zuletzt bedeutet die Option --delete wirklich delete! Sind in dem Zielverzeichnis andere Daten, werden sie ins Backup-Verzeichnis geschoben oder auch gelöscht!



Anhang

Siehe auch

Dokumentation

Man-Page
  1. man rsync
Info-Page

Links

Projekt
Weblinks