rsync (Remote Sync) ist ein leistungsfähiges und effizientes Dienstprogramm in Linux, mit dem Dateien und Verzeichnisse zwischen zwei Standorten über ein Netzwerk synchronisiert werden können. Es wird häufig für Backups, die Spiegelung von Daten und die effiziente Übertragung von Dateien verwendet, indem nur die Unterschiede zwischen Quelle und Ziel kopiert werden.
Dieser Leitfaden führt Sie durch die Installation, die grundlegende Verwendung und die fortgeschrittenen Techniken von rsync, damit Sie Dateien effektiv über ein Netzwerk verwalten können.
Bei den meisten Linux-Distributionen ist rsync bereits vorinstalliert. Um zu überprüfen, ob es installiert ist, führen Sie aus:
rsync --version
Wenn es nicht installiert ist, können Sie es mit dem Paketmanager Ihrer Distribution installieren:
sudo apt install rsync
sudo yum install rsync
sudo dnf install rsync
sudo pacman -S rsync
📌 Wie überträgt man Dateien von Windows auf einen entfernten Server mit rsync über PuTTY SSH?
Um rsync unter Windows über PuTTY SSH zu verwenden, müssen Sie rsync installiert haben:
PuTTY fürSSH-Verbindungen
rsync und OpenSSH unter Windows
Pagent (optional) für die automatische Authentifizierung mit dem SSH-Schlüssel
Wenn Sie MSYS2 heruntergeladen haben, können Sie rsync einfach mit pacman, dem Paketmanager von MSYS2, installieren.
pacman -Syu
pacman -Su
dieser Schritt stellt sicher, dass Sie die neueste Version des Paketmanagers haben.
pacman -S rsync
💡 Wenn Sie openssh für die SSH-Übertragung benötigen, installieren Sie es ebenfalls:
pacman -S openssh
Überprüfen Sie die Installation
Um zu überprüfen, ob rsync korrekt installiert wurde, führen Sie aus:
rsync --version
Die grundlegende Syntax von rsync lautet:
rsync [Optionen] Quelle Ziel
Um Dateien zwischen zwei lokalen Verzeichnissen zu synchronisieren:
rsync -av /Quelle/Verzeichnis/ /Ziel/Verzeichnis/
Der abschließende Schrägstrich / in der Quelle stellt sicher, dass nur der Inhalt des Verzeichnisses kopiert wird, nicht das Verzeichnis selbst.
So übertragen Sie Dateien von einem lokalen System auf einen entfernten Server:
rsync -avz /lokal/Verzeichnis/ user@remote_host:/remote/Verzeichnis/
*Nachdem wir den Befehl in MSYS2 hinzugefügt haben, fügen wir die SSH-Daten hinzu, um uns mit dem entfernten Server zu verbinden, und das Ergebnis wird angezeigt:
Mit diesem Befehl werden die Dateien über SSH sicher auf den Remoteserver kopiert.
Prüfen Sie, ob der Befehl erfolgreich auf Ihrem Remote-Server ausgeführt wurde:
So kopieren Sie Dateien von einem entfernten Server auf Ihren lokalen Rechner. Standardmäßig verwendet rsync SSH für die sichere Kommunikation. Sie können SSH explizit mit angeben:
rsync -avz -e ssh /lokal/Verzeichnis/ user@remote_host:/remote/Verzeichnis/
Wenn SSH einen nicht standardmäßigen Port (z. B. 2222) verwendet, geben Sie ihn wie folgt an:
rsync -avz -e "ssh -p 2222" /local/directory/ user@remote_host:/remote/directory/
Um zusätzliche Dateien im Ziel zu löschen, die in der Quelle nicht vorhanden sind:
Im ersten Schritt fügen wir zusätzliche Dateien im PuttySSH-Terminal hinzu:
cd /home/user/test_backup/
touch datei1.txt datei2.log datei3.jpg
mkdir extra_files
touch extra_files/alte_datei.txt
Synchronisieren Sie nun das Verzeichnis ohne bestimmte Dateien, und rsync löscht die Dateien, die sich nicht mehr in der Quelle befinden:
rsync -av --delete /Quelle/Verzeichnis/ /Ziel/Verzeichnis/
📌 Was wird damit gemacht?
Alle Dateien, die sich auf dem Server, aber NICHT in test/local befinden, werden gelöscht.
MSYS2-Ergebnis
PuttySSH-Ergebnis
Warnung: Verwenden Sie –delete mit Bedacht, da es Dateien dauerhaft vom Zielort entfernt.
So schließen Sie bestimmte Dateien oder Verzeichnisse aus:
rsync -av --exclude 'file_or_directory' /source/ user@remote_host:/destination/
MSYS2 Ergebnis
PuttySSH-Ergebnis
Für mehrere Ausschlüsse, verwenden Sie:
rsync -av --exclude={'file1','dir1','*.log'} /Quelle/ user@remote_host:/Ziel/
Sie können rsync mit nohup im Hintergrund laufen lassen:
nohup rsync -avz /source/ user@remote_host:/destination/ &
Dadurch kann der Prozess auch nach dem Abmelden fortgesetzt werden.
In der lokalen Direktive fügten wir eine neue Datei new_file.txt33333333 hinzu, dann trennten wir die Verbindung zum PuttySSH-Terminal, und der obige Befehl ermöglicht es uns, Dateien zu senden, auch wenn die Verbindung zum Server unterbrochen ist.
Um die automatische Synchronisierung mit cron zu planen, öffnen Sie die crontab:
crontab -e
Fügen Sie einen Job hinzu, um rsync jeden Tag um Mitternacht auszuführen:
0 0 * * * rsync -avz /source/ user@remote_host:/destination/
rsync ist ein vielseitiges und leistungsfähiges Werkzeug für die Dateisynchronisierung und -übertragung über ein Netzwerk. Ob Sie nun Daten sichern, Verzeichnisse spiegeln oder Dateien zwischen Servern migrieren, rsync bietet eine effiziente und zuverlässige Lösung. Durch die Nutzung der verschiedenen Optionen und Automatisierungsfunktionen können Sie Ihre Dateien in Linux-Umgebungen effektiv verwalten.