Verwendung des Dienstprogramms rsync in Linux zur Verwaltung von Dateien über ein Netzwerk

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.

Installation von rsync

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:

  • Debian/Ubuntu:
    sudo apt install rsync
  • RHEL/CentOS:
    sudo yum install rsync
  • Fedora:
    sudo dnf install rsync
  • Arch Linux:
    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

Installation von rsync unter Windows mit MSYS2

Wenn Sie MSYS2 heruntergeladen haben, können Sie rsync einfach mit pacman, dem Paketmanager von MSYS2, installieren.

  • Aktualisieren Sie MSYS2 und vorhandene Pakete
    Führen Sie im MSYS2-Terminal aus:

pacman -Syu

  • Wenn MSYS2 nach der Aktualisierung automatisch geschlossen wird, öffnen Sie es erneut und führen Sie es aus:

pacman -Su
dieser Schritt stellt sicher, dass Sie die neueste Version des Paketmanagers haben.

  • Rsync installieren
    Installieren Sie nun rsync mit:

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

Grundlegende rsync-Syntax

Die grundlegende Syntax von rsync lautet:

rsync [Optionen] Quelle Ziel

Häufig verwendete Optionen

  • a: Archivmodus (behält symbolische Links, Berechtigungen, Zeitstempel usw. bei)
  • v: Ausführliche Ausgabe
  • z : Dateidaten während der Übertragung komprimieren
  • P: Fortschritt während der Übertragung anzeigen
  • r: Verzeichnisse rekursiv kopieren
  • e : Remote-Shell angeben (wie SSH)

Verwendung von rsync für die lokale Dateisynchronisation

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.

Verwendung von rsync über ein Netzwerk

Übertragen von Dateien auf einen entfernten Server

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:

ls -lah /home/user/test_backup/ [put_your_directory]

Übertragen von Dateien von einem entfernten Server auf einen lokalen Rechner

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/

Synchronisieren und Löschen von Extradateien

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.

Dateien und Verzeichnisse ausschließen

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/

Ausführen von rsync als Hintergrundprozess

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.

Automatisieren von Dateiübertragungen mit Cron-Jobs

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/

Schlussfolgerung

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.