====== Linux - Dateien mit rsync synchron halten ======
Das Tool **rsync** bietet die Möglichkeit Dateien, Ordner oder auch komplette Laufwerke, lokal oder per **SSH** zu synchronisieren. \\
\\
Der Befehl umfasst unzählige Optionen. Wir gehen hier nur mal auf die wichtigsten ein, möchtet Ihr Euch tiefer mit **rsync** beschäftigen, findet Ihr unter **rsync --help** eine Übersicht der Optionen. \\
\\
Wichtig! rsync ersetzt kein Backup, da defekte oder gelöschte Daten je nach Einstellung repliziert werden.\\
\\
===== Installation =====
**rsync** ist auf vielen Distributionen bereits vorhanden. Ansonsten kann es über die Paketquellen installiert werden
sudo apt update \\
sudo apt install rsync \\
===== Syntax =====
Die Syntax von rsync
rsync \\
==== Optionen ====
| ** Option ** || ** Erläuterung ** |
| -h | --help | Anzeigen der umfangreichen Optionen des Befehls |
| -a | --archive | ist eine Zusammenfassung der Parameter Dgloprt |
| -D | | Inhalte zu Gerätedateien werden mit kopiert |
| -g | | Gruppenrechte werden übertragen |
| -l | | Links werden mit kopiert |
| -o | | überträgt auch die Zugriffsrechte |
| -p | | behält die Zugriffsrechte |
| -r | --recursive | Synchronisiert auch alle Unterverzeichnisse mit |
| -t | | der Zeitstempel der Datei wird mit übertragen |
| -v | --verbose | Ausgabe des aktuellen Bearbeitungsstands |
| -u | --update | vorhandene Dateien werden nur aktualisiert wenn sie neueren Datums sind |
| -P | | ist eine Zusammenfassung der Optionen –partial und –progress |
| -n | | durchführen eines Testlaufs |
| -e | --extern | Auswahl der Remote Shell |
| | –partial | Setzt die Synchronisation nach Abbruch fort |
| | –progress | Zeigt den Fortschritt der Synchronisation an |
| | –delete | löscht Dateien im Zielverzeichnis die in der Quelle nicht mehr vorhanden sind |
| | | |
===== Anleitung =====
==== Vorbereitung ====
Für dieses HowTo wurde ein Beispielordner **„Tortuga“** mit sieben Bildern angelegt.\\
\\
{{:wiki:linux:datenaustausch:rsync1.png?400|}} \\
==== Synchronisation ====
Mit folgendem Befehl wird der Ordner **„Port-Royal“** erstellt und der Inhalt des Ordners **„Tortuga“** in diesen synchronisiert.\\
rsync -arvuP --delete Tortuga/ Port-Royal
\\
{{:wiki:linux:datenaustausch:rsync2.png?400|}}\\
\\
Wie man in folgendem Screenshot sieht sind die Verzeichnisse jetzt synchron.\\
\\
{{:wiki:linux:datenaustausch:rsync3.png?400|}}\\
\\
Nun wurden die beiden Bilddateien **„ship1.jpg“** und **„ship4.jpg“** im Ordner entfernt und die Synchronisation nochmals angestoßen. **„rsync“** löscht die Dateien im Zielverzeichnis **„Port-Royal“** .\\
\\
{{:wiki:linux:datenaustausch:rsync5.png?400|}}\\
\\
Bearbeitet man die Dateien, **„ship2.jpg“** und **„ship5.jpg“** sind jetzt größer, werden diese bei einem erneuten Durchlauf ersetzt.\\
\\
{{:wiki:linux:datenaustausch:rsync7.png?400|}}\\
\\
Fügt man den Parameter **„-n“** hinzu wird ein Testlauf (Dry Run) angestoßen, hierbei werden jedoch keine Dateien verändert.\\
\\
{{:wiki:linux:datenaustausch:rsync6.png?400|}}\\
\\
===== Synchronisation via SSH =====
Möchte man eine Synchronisation zwischen unterschiedlichen Rechnern per **„SSH“** ausführen, realisiert man als erstes einen [[wiki:linux:konnektivitaet:linux-ssh-key|]].\\
\\
Anschließend kann die Synchronisation mit folgendem Befehl durchgeführt werden:\\
rsync -arvu --delete -e ssh /Tortuga user@linux42.de:/home/user/Port-Royal
\\
Es macht natürlich keinen Sinn, die Ausführung jedes mal per Hand anzustoßen. Am besten packt man das Ganze in ein Skript und führt es via **„Cronjob“** regelmäßig aus. \\
\\
----
===== Fazit =====
Mit **rsync** steht einem eine einfache Möglichkeit zur Verfügung Daten synchron zu halten. Wie schon oben erwähnt, ersetzt diese Möglichkeit jedoch keine Sicherung.
----
{{page>impressum:ausschluss#Haftungsausschluss}}
----
~~DISCUSSION~~