Übersicht
rsync ist durch die Verwendung des 'Delta-Transfer'-Verfahrens, das nur geänderte Teile von Dateien überträgt, sehr effizient beim Synchronisieren großer Dateien oder vieler Dateien. Es kann Dateien zwischen lokalen Dateisystemen, von lokal zu entfernt und von entfernt zu lokal übertragen.
Hauptmerkmale
- Delta-Übertragung (nur geänderte Teile übertragen)
- Unterstützung für lokale und entfernte Synchronisation
- Beibehaltung von Metadaten wie Berechtigungen, Eigentümer, Zeitstempel
- Komprimierte Übertragung und Bandbreitenkontrolle
- Angabe von Mustern zum Ausschließen/Einschließen von Dateien
Wichtige Optionen
rsync bietet eine Vielzahl von Optionen, aber hier sind die am häufigsten verwendeten:
Grundlegende Operationen und Archivierung
Übertragungssteuerung
Netzwerk
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`rsync` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Beispiele, die verschiedene Anwendungsszenarien von rsync zeigen.
Lokale Verzeichnisse synchronisieren (am häufigsten)
rsync -avz /pfad/zum/quelle/ /pfad/zum/ziel/
Kopiert/synchronisiert den Inhalt des Quellverzeichnisses in das Zielverzeichnis. Die Kombination der Optionen -a (Archiv), -v (ausführlich) und -z (komprimiert) wird am häufigsten verwendet.
Dateien auf einen entfernten Server pushen
rsync -avz /pfad/zum/lokalen_quelle/ benutzer@entfernter_host:/pfad/zum/entfernten_ziel/
Synchronisiert das lokale Quellverzeichnis mit dem Zielverzeichnis auf dem entfernten Server.
Dateien von einem entfernten Server ziehen
rsync -avz benutzer@entfernter_host:/pfad/zum/entfernten_quelle/ /pfad/zum/lokalen_ziel/
Synchronisiert das Quellverzeichnis auf dem entfernten Server mit dem Zielverzeichnis auf dem lokalen System.
Quelle und Ziel spiegeln (Option --delete)
rsync -avz --delete /pfad/zum/quelle/ /pfad/zum/ziel/
Gleicht das Quellverzeichnis exakt mit dem Ziel ab. Dateien, die in der Quelle nicht vorhanden sind, werden im Ziel gelöscht. Es wird dringend empfohlen, dies zuerst mit `--dry-run` zu testen.
Bestimmte Dateien/Verzeichnisse ausschließen
rsync -avz --exclude='*.log' --exclude='temp/' /pfad/zum/quelle/ /pfad/zum/ziel/
Schließt Log-Dateien und das Verzeichnis 'temp' von der Synchronisation aus.
Simulation vor der Ausführung (--dry-run)
rsync -avz --delete --dry-run /pfad/zum/quelle/ /pfad/zum/ziel/
Zeigt an, welche Aktionen rsync ausführen würde, ohne tatsächlich Dateien zu ändern. Dies ist besonders wichtig, bevor die Option `--delete` verwendet wird.
Installation
rsync ist auf den meisten Linux-Distributionen standardmäßig installiert. Falls es nicht installiert ist, können Sie es mit den folgenden Befehlen installieren:
Debian/Ubuntu
sudo apt update
sudo apt install rsync
CentOS/RHEL/Fedora
sudo yum install rsync
Arch Linux
sudo pacman -S rsync
Tipps & Hinweise
Tipps und Hinweise zur effektiveren und sichereren Verwendung von rsync.
Bedeutung des abschließenden Schrägstrichs (/) im Pfad
Das Vorhandensein oder Fehlen des abschließenden Schrägstrichs im Quellpfad beeinflusst das Verhalten.
- `/pfad/zum/quelle/` (mit Schrägstrich): Kopiert den 'Inhalt' des `quelle`-Verzeichnisses in das Ziel.
- `/pfad/zum/quelle` (ohne Schrägstrich): Kopiert das `quelle`-Verzeichnis 'selbst' in das Ziel. (Das `quelle`-Verzeichnis wird innerhalb des Zielverzeichnisses erstellt)
Nutzung der Option --dry-run
Insbesondere bei der Verwendung destruktiver Optionen wie `--delete` sollten Sie unbedingt zuerst mit `--dry-run` testen, um unerwarteten Datenverlust zu vermeiden.
Berechtigungs- und Eigentümerprobleme
Die Option `--archive` versucht, Berechtigungen und Eigentümer beizubehalten. Wenn der entsprechende Benutzer/die entsprechende Gruppe auf dem Zielsystem nicht existiert oder keine Berechtigungen vorhanden sind, können Probleme auftreten. In diesem Fall können Sie `sudo` verwenden oder Optionen wie `--no-p` (Berechtigungen nicht beibehalten), `--no-o` (Eigentümer nicht beibehalten), `--no-g` (Gruppe nicht beibehalten) in Betracht ziehen.
Bandbreitenbegrenzung
Um nicht zu viel Netzwerkbandbreite zu verbrauchen, können Sie die Übertragungsgeschwindigkeit mit der Option `--bwlimit=KBPS` begrenzen. (z. B. `--bwlimit=1000` begrenzt auf 1 MB/s)