Heim > System-Tutorial > LINUX > So synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux

So synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux

William Shakespeare
Freigeben: 2025-03-21 09:12:14
Original
589 Leute haben es durchsucht

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]
Nach dem Login kopieren

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/
Nach dem Login kopieren

Denken Sie daran, Platzhalter durch Ihre tatsächlichen Pfade, IP -Adresse und Benutzernamen zu ersetzen.

So synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux

So synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux

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/
Nach dem Login kopieren

Dadurch werden Dateien aus dem Ziel entfernt, die in der Quelle nicht vorhanden sind. Vorsicht mit --delete um einen versehentlichen Datenverlust zu vermeiden.

So synchronisieren Sie lokale und entfernte Verzeichnisse mit RSYNC unter Linux

Wichtige Überlegungen:

  • Nachverfolgung nach / sind entscheidend. Das Auslassen von ihnen kann zu unerwarteter Verzeichniserstellung führen.
  • Überprüfen Sie die Berechtigungen sowohl in Quell- als auch in den Zielverzeichnissen.
  • Die SSH-basierte Authentifizierung wird für die automatisierte Synchronisation empfohlen, wodurch Kennwortanforderungen beseitigt werden.

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage