Alexander (HH): rsync?

Beitrag lesen

Moin Moin!

rsync

(Das geht übrigens nicht nur lokal, sondern auch über rsh, ssh und ein rsync-eigenes Protokoll übers Netz)

vielen Dank für Deinen Hinweis. Puh! Jetzt muss ich mich noch tiefer in Linux-Programme einarbeiten, da ich als Windosenfuttermapfer bisher um Kommandozeilen-Dingse und solch extrem nützliche Tools habe drücken können.

Die rsync-man-Page ist eine der besonders gelungenen, die fängt nämlich mit den häufigsten "Zaubersprüchen" für Mausschubser an, ohne dass man sich stundenlang durch irgendwelche exotischen, alphabetisch sortierten Kommandozeilenparameter wühlen muß -- wer das will, kann das allerdings auch haben. Auf der rsync-Homepage gibt's auch noch etwas Doku.

Wenn mein cp-Kommando beendet ist (läuft nun schon seit Stunden), werde ich das mit diesem rsync ausprobieren.

Das schöne an rsync ist, dass man es jederzeit unterbrechen und fortsetzen kann, auch wenn Du schon einen großen Haufen mit cp oder sonstigen Mitteln rüberkopiert hast. Der Trick bei rsync ist einfach ein Fenster, über das permanent mit minimalem Aufwand eine Prüfsumme berechnet wird, so kann rsync genau da fortsetzen, wo es beim letzten Mal unterbrochen wurde, ohne dass man irgendwelche Statusinformationen vorhalten muß. Das kostet natürlich Rechenleistung, ist aber gerade über dünne oder wackelige Internet-Leitungen einfach nur genial.

Frage: Wird das mit rsync deshalb ganz sicher funktionieren, weil sowohl Quell- als auch Zieldatei auf demselben System liegen, sodass kein remote server oder remote client reagieren muss?

rsync hat im Prinzip drei Betriebsarten:

* von local nach local
* von local nach remote
* von remote nach local

Und das schöne daran: Es ist komplett egal, ob Du lokal oder remote arbeitest, rsync macht automatisch das Richtige. Wenn Du eine Seite remote haben willst, stellst Du dem Datei- bzw. Verzeichnisnamen "remote.server.tld:" voran, dann stellt rsync komplett transparent eine Verbindung über rsh, wahlweise und typischerweise über ssh, her und startet auf der remote-Maschine ebenfalls einen rsync-Prozess, um die Daten durch rsh/ssh hin oder her zu schaufeln. Wenn Du rein lokal arbeitest, erzeugt rsync ebenfalls eine zweite Instanz, die aber ganz schnöde über fork() und eine Pipe. Zwischen den beiden passiert aber genau das gleiche wie bei der Aktion über rsh/ssh. Deswegen ist es auch völlig egal, ob Du rein lokal arbeitest oder nicht.

Daneben gibt es noch den Spezialmodus mit zwei Doppelpunkten nach dem Servernamen ODER einer rsync://-URL, dann stellt rsync eine Verbindung über TCP zu einem mehr oder weniger dauerlaufenden rsync-Daemon her. Aber auch da ist nach Herstellen der Verbindung kein Unterschied mehr vorhanden.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".