Rsync: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
rsync - Synchronisation von Verzeichnisbäumen | |||
== Beschreibung == | == Beschreibung == | ||
rsync - (remote sync) Synchronisation von Verzeichnisbäumen | |||
* unidirektional | * unidirektional | ||
* Delta-Transfer-Algorithmus | * Delta-Transfer-Algorithmus | ||
Zeile 13: | Zeile 13: | ||
; Verzeichnisse Synchronisieren (rsync) | ; Verzeichnisse Synchronisieren (rsync) | ||
rsync ist ein Programm, um Dateien zwischen lokalen oder über das Netzwerk erreichbaren Pfaden abzugleichen | |||
* Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen, so dass nur die Dateien behandelt werden müssen, bei denen es Änderungen gegeben hat | * Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen, so dass 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 | * Sind Quelle und Ziel lokale Pfade, werden die betroffenen Dateien normal kopiert | ||
* Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlichen noch einen speziellen Delta-Transfer-Algorithmus, | * Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlichen noch einen speziellen Delta-Transfer-Algorithmus, sodass nur die geänderten Teile der Dateien über das Netzwerk transportiert werden müssen | ||
Aufgrund dieser Eigenschaften ist rsync | 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 | * 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 | * Wenn man allerdings Verzeichnisse zwischen zwei Systemen wie Laptop und Desktop-Rechner synchronisieren möchte, sind Programme wie [[Unison]] besser geeignet | ||
== Installation == | == Installation == | ||
Zeile 32: | Zeile 32: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Anstelle des Platzhalters | 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 | * Gibt man nur einen Parameter an, so wird dieser als Ziel interpretiert und es gilt das aktuelle Verzeichnis als Quelle | ||
=== Optionen === | === Optionen === | ||
Es ist empfehlenswert, die Option | Es ist empfehlenswert, die Option -a immer zu benutzen, um alle Rechte und Eigentümer der Quelldatei auf dem Zielmedium zu übernehmen | ||
{| class="wikitable options" | {| class="wikitable options" | ||
Zeile 58: | Zeile 58: | ||
|} | |} | ||
; Weitere Optionen | |||
{| class="wikitable" | {| class="wikitable options" | ||
|- | |- | ||
! Option !! Beschreibung | |||
|- | |- | ||
| | | | | -u | ||
| | überspringt Dateien, die im Ziel neuer sind als in der Quelle | | | überspringt Dateien, die im Ziel neuer sind als in der Quelle | ||
|- | |- | ||
| | | | | -v | ||
| | zeigt während des Synchronisierens alle ausgeführten Schritte an | | | zeigt während des Synchronisierens alle ausgeführten Schritte an | ||
|- | |- | ||
| | | | | -x | ||
| | berücksichtigt nur Objekte, die sich im gleichen Dateisystem befinden | | | berücksichtigt nur Objekte, die sich im gleichen Dateisystem befinden | ||
|- | |- | ||
| | | | | -P | ||
| | aktiviert folgende Optionen: | | | aktiviert folgende Optionen: --progress Fortschrittsanzeige beim Transfer anzeigen --partial Fortsetzung des Transfers bei Abbruch | ||
|- | |- | ||
| | | | | -n | ||
| | simuliert nur was passieren würde ("dry run") | | | simuliert nur was passieren würde ("dry run") | ||
|- | |- | ||
| | | | | --bwlimit | ||
| | z. B. | | | 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) | | | 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 | | | 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 | | | 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 | | | 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 | | | 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 | * 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 | | | 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 | | | 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 | | | 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 | * Diese Methode kann etwas länger dauern | ||
|- | |- | ||
| | | | | --iconv | ||
| | sorgt für eine Konvertierung der Dateinamen zwischen Systemen mit verschiedenen Codepages | | | 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 | * 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 | | | 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 | | | 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) | * 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) | ||
Zeile 124: | Zeile 121: | ||
; Experten-Info | ; Experten-Info | ||
Für weitere Optionen und ausführlichere Erklärungen die Manpage oder Hilfe mit | Für weitere Optionen und ausführlichere Erklärungen die Manpage oder Hilfe mit rsync -h aufrufen | ||
; Achtung | ; Achtung | ||
Zeile 131: | Zeile 128: | ||
=== Option -a === | === Option -a === | ||
Aquivalent zu | Aquivalent zu -rlptgoD und fasst folgende Optionen zusammen | ||
{| class="wikitable options" | {| class="wikitable options" | ||
|- | |- | ||
Zeile 150: | Zeile 147: | ||
=== Argumente === | === Argumente === | ||
<syntaxhighlight lang="bash" highlight="1" line> | |||
$ | </syntaxhighlight> | ||
$ rsync -a /home/user /data/backup | |||
Zeile 157: | Zeile 155: | ||
rsync kann nur das kopieren, wozu der Nutzer auch Rechte hat, z. B. bei | rsync kann nur das kopieren, wozu der Nutzer auch Rechte hat, z. B. bei | ||
<syntaxhighlight lang="bash" highlight="1" line> | |||
rsync -a /etc ZIEL | |||
</syntaxhighlight> | |||
kann es zu Problemen kommen | 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 | |||
<syntaxhighlight lang="bash" highlight="1" line> | |||
sudo rsync -a /etc ZIEL | |||
</syntaxhighlight> | |||
Vorsicht ist geboten, wenn man versucht, Konten wechselseitig zu sichern | 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 | * Man sollte darauf achten, dass man nicht das Backup von A auf B wieder auf A kopiert | ||
Nicht zuletzt bedeutet die Option | Nicht zuletzt bedeutet die Option --delete wirklich delete! Sind in dem Zielverzeichnis andere Daten, werden sie ins Backup-Verzeichnis geschoben oder auch gelöscht! | ||
=== Umgebungsvariablen === | === Umgebungsvariablen === |
Version vom 15. März 2025, 23:23 Uhr
rsync - Synchronisation von Verzeichnisbäumen
Beschreibung
rsync - (remote sync) Synchronisation von Verzeichnisbäumen
- 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
- Verzeichnisse Synchronisieren (rsync)
rsync ist ein Programm, um Dateien zwischen lokalen oder über das Netzwerk erreichbaren Pfaden abzugleichen
- Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen, so dass 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
- Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlichen noch einen speziellen Delta-Transfer-Algorithmus, sodass nur die geänderten Teile der Dateien über das Netzwerk transportiert werden müssen
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
Installation
sudo apt install rsync
Aufruf
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
Optionen
Es ist empfehlenswert, die Option -a immer zu benutzen, um alle Rechte und Eigentümer der Quelldatei auf dem Zielmedium zu übernehmen
Unix | Beschreibung |
---|---|
-a | fasst folgende Optionen zusammen |
-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) |
- Weitere Optionen
Option | Beschreibung |
---|---|
-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
|
-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
|
--iconv | sorgt für eine Konvertierung der Dateinamen zwischen Systemen mit verschiedenen Codepages
|
--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
|
- Experten-Info
Für weitere Optionen und ausführlichere Erklärungen die Manpage oder Hilfe mit rsync -h aufrufen
- Achtung
- Vor dem Ausführen von rsync muss man sicher sein, die korrekten Parameter und Verzeichnisse angegeben zu haben
- Fahrlässige Handhabung kann zu Datenverlust führen
Option -a
Aquivalent zu -rlptgoD und fasst folgende Optionen zusammen
-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 Quhttps://wiki.foxtom.de/index.php?title=Rsync/TMP&action=edit§ion=2elldatei bei (nur root) |
-D | behält Gerätedateien der Quelldatei bei (nur root) |
Argumente
$ 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!
Umgebungsvariablen
Exit-Status
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
- Man-Page
- man rsync
- Info-Page
Links
Projekt
Weblinks
- https://de.wikipedia.org/wiki/Rsync
- https://www.thomas-krenn.com/de/wiki/Daten_mit_rsync_unter_Linux_synchronisieren?xtxsearchselecthit=1
- https://wiki.ubuntuusers.de/rsync/
- Projektseite
- Rsync
- Grsync- grafische Oberfläche
- Dateien abgleichen mit rsync- Artikel aus LinuxUser 04/2006
- Skripte/Backup mit rsync - fertiges Skript für die Datensicherung