====== 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~~