RSYNC: Ein leistungsstarkes Werkzeug zur Synchronisierung lokaler und entfernter Verzeichnisse
RSYNC ist ein robustes und vielseitiges Dienstprogramm für die Synchronisierungsverzeichnisse, wodurch nur geänderte Dateiabschnitte effizient übertragen werden. Dies ist ideal, um große Verzeichnisse mit häufig aktualisierten Dateien zu verwalten, sei es zwischen zwei Maschinen oder einem einzigen System. Seine Flexibilität wird durch Funktionen wie SSH -Integration, Datenkomprimierung, Erhaltung von Dateiattributen (Berechtigungen und Zeitstempel) und die Möglichkeit, Dateien aus dem Ziel zu entfernen, die in der Quelle fehlen, entfernen.
RSYNC Command Struktur:
RSYNC [Optionen] [Quelle] [Ziel]
Key RSYNC -Optionen:
-a
( --archive
): Bewahrt eine entscheidende Dateimetadaten (symbolische Links, Berechtigungen, Zeitstempel).-v
( --verbose
): Bietet eine detaillierte Ausgabe.-r
( --recursive
): Prozesseverzeichnisse rekursiv.--delete
: Entfernt Dateien aus dem Ziel, die sich nicht in der Quelle befinden. Wesentlich für die echte Synchronisation.-z
( --compress
): Komprimiert Daten während der Übertragung, speichern Sie Bandbreite.-h
( --human-readable
): Zeigt Dateigrößen und andere numerische Daten in einem benutzerfreundlichen Format an.-P
: Kombiniert --partial
(wiederholt unterbrochene Transfers) und --progress
(zeigt den Übertragungsfortschritt an).Synchronisierungsszenarien und Setup:
RSYNC ist für verschiedene Aufgaben wertvoll: Sicherung von Daten auf einen Remote -Server, die Freigabe von Dateien über Maschinen, Bereitstellung von Code für die Produktion und die Aufrechterhaltung der Konsistenz zwischen Entwicklungs- und Staging -Umgebungen.
Für das Beispiel dieses Leitfadens werden wir verwenden:
Lokales System: Debian 11 Desktop, lokales Verzeichnis: ~/local/sync/
Remote -System: Debian 12 Server, Remote -Benutzer: ostechnix
, Remote IP: 192.168.1.12
, Remote -Verzeichnis: ~/remote/sync/
Grundnutzung:
Unter der Annahme, dass rsync
installiert ist und die Berechtigungen korrekt festgelegt sind, kopiert/synchronisiert die folgenden Befehl das lokale Verzeichnis in die Remote:
rsync -avzp ~/local/sync/ostechnix@192.168.1.12: ~/remote/sync/
Denken Sie daran, Platzhalter durch Ihre tatsächlichen Pfade, IP -Adresse und Benutzernamen zu ersetzen.
True Synchronisation mit --delete
:
Der obige Befehl spiegelt die Quelle zum Ziel wider. Um eine vollständige Synchronisation (identischer Inhalt) sicherzustellen, verwenden Sie --delete
:
rsync -avzp - -delete ~/local/sync/ostechnix@192.168.1.12: ~/remote/sync/
Dadurch werden Dateien aus dem Ziel entfernt, die in der Quelle nicht vorhanden sind. Vorsicht mit --delete
um einen versehentlichen Datenverlust zu vermeiden.
Wichtige Überlegungen:
/
sind entscheidend. Das Auslassen von ihnen kann zu unerwarteter Verzeichniserstellung führen.Weitere Verbesserungen:
Schlüsselbasierte SSH-Authentifizierung: Generieren Sie ein SSH-Schlüsselpaar ( ssh-keygen
), kopieren Sie den öffentlichen Schlüssel auf den Remote-Server ( ssh-copy-id
) und verwenden Sie Standard-Schlüsselpfade oder geben Sie den privaten Schlüsselpfad in Ihrem rsync
-Befehl explizit an.
Echtzeitsynchronisation (Inotify): Kombinieren Sie rsync
mit inotifywait
(aus dem inotify-tools
-Paket), um die Synchronisation bei Dateiänderungen auszulösen. Im Originaldokument wird ein Beispielskript enthalten.
Planen mit cron
: Synchronisation mithilfe von cron
zum Ausführen in bestimmten Intervallen (z. B. täglich, stündlich). Beispiele für cron
-Einträge finden Sie im Originaldokument.
Explizite SSH -Schlüsselpfad: Obwohl es mit Standardschlüsselpositionen im Allgemeinen unnötig ist, bietet die explizit Angabe des privaten Schlüsselpfads in Ihrem Skript mehr Kontrolle.
Abschluss:
RSYNC ist ein leistungsstarkes Tool für eine effiziente Dateisynchronisation. Das Verständnis seiner Optionen und die Verwendung von Best Practices wie SSH-Key-basierte Authentifizierung und geplanten Aufgaben sorgt für zuverlässige und sichere Datenverwaltung. Testen Sie immer gründlich, bevor Sie rsync
-Befehle auf Produktionsumgebungen anwenden, insbesondere bei der Verwendung der Option --delete
.
Das obige ist der detaillierte Inhalt vonSo synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!