Rsync ist im Unix- und Linux-Universum auf der Konsole ein sehr nützliches Tool zum Kopieren bzw. Synchronisieren von Verzeichnissen auf lokalen oder entfernen Systemen. Während scp auch komplette Verzeichnisse samt deren Inhalte rekursiv kopieren kann, bietet rsync den großen Vorteil, Dateien mittels Zeitstempel vergleichen zu können. So wird nur kopiert, was neuer ist und gelöscht, was im Quellverzeichnis nicht mehr vorhanden wird. Ordner werden also synchronisiert bzw. auf den gleichen Stand gebracht. Das Problem worüber ich immer stolper: Wie war das nochmal mit dem abschließendem Slash?
Slash am Ende, ich nur den Inhalt sende
Mit diesem Merksatz, versuche ich mir zu merken, dass der abschließende Slash am Ende des Quellverzeichnis nur die Ordner-Inhalte kopiert:
rsync -avz /lokales/quellverzeichnis/ /lokales/zielverzeichnis/
Zu einem entferntem System sieht der Befehl so aus:
rsync -avz /lokales/quellverzeichnis/ benutzer@zielserver:/entferntes/zielverzeichnis/
Zur Verdeutlichung hier noch eine Ordnerstruktur
Kein Slash und rsync ist gemein, dann haut es das Quellverzeichnis mit rein
Leider nicht ganz so einprägsam, weil der Merksatz länger ist, aber eine gute Ergänzung um die Eselsbrücke abzurunden. „Gemein“ daher, weil es häufig gewünscht ist, dass nur die Ordnerinhalte kopiert werden sollen und nicht nochmal das Verzeichnis erstellt.
Nachfolgendes Kommando erstellt das Verzeichnis
rsync -avz /lokales/quellverzeichnis /lokales/zielverzeichnis/
Was macht der Slash am Ende beim Zielverzeichnis?
Um es einfach zu halten: Nichts relevantes! Das kannst du ignorieren. Brauchst Du nicht. Verwirrt mehr als es hilft.
Beim Erstellen der Merksätze hat ChatGPT geholfen. Von alleine ist die KI aber da nicht komplett drauf gekommen. Übrigens kannst Du deine Konsolenfähigkeiten, auch mit ChatGPT üben, da die KI ein Unix-Terminal simulieren kann. Hier mal der Prompt dazu:
Ich möchte, dass du dich wie ein Terminal Terminal eines Ubuntu Servers verhältst. Ich werde Befehle eingeben und du antwortest, was ein Linux-Terminal entsprechend anzeigen sollte. Ich möchte, dass du ausschließlich mit der Terminalausgabe innerhalb eines einzigen eindeutigen Codeblocks antwortest. Nichts anderes! Verzichte auf Erklärungen. Gib keine Befehle selbst ein, außer ich weise dich dazu an. Wenn ich dir etwas mitteilen möchte mache ich das, indem ich Text in geschweiften Klammern {wie diesem} platziere. Dann kannst Du darauf normal antworten. Mein erster Befehl lautet pwd.
Allerdings ist ein echtes Betriebssystem spaßiger, aber halt auch aufwändiger, mit dem üben. Öfter gibt es mit ChatGPT auch mal keine Ausgabe.
Zeige Kommentare (1)
Der Artikel präsentiert rsync als ein effizientes Werkzeug zur Synchronisierung von Verzeichnissen in Unix und Linux. Im Gegensatz zu scp berücksichtigt rsync die Zeitstempel der Dateien, was eine genauere und wirtschaftlichere Synchronisierung ermöglicht. Die Mnemotechnik "Ding mit einem Schrägstrich am Ende" hilft zu merken, dass nur der Inhalt eines Verzeichnisses kopiert wird, was besonders nützlich bei der Remote-Datenübertragung ist. Eine bachelorarbeit als Hilfe bei der Erstellung hochwertiger Texte könnte die Vorteile und Besonderheiten der Verwendung von rsync klar und ausführlich beschreiben.