Jarss (just another rsync shell script)

Aus Synology Wiki
Dies ist die aktuellste Version dieser Seite. Sie hat keine bestätigte Version.

Was ist jarss

jarss (just another rsync shell script) verwendet rsync, um Daten zwischen lokalen Pfaden oder Pfaden, auf die über das Netzwerk mit SSH-Public-Key-Authentifizierung zugegriffen werden kann, zu übertragen. Neben synchronisierten Datensicherungen unterstützt jarss auch inkrementelle Datensicherungen.

jarss erhält seine Informationen zur Durchführung einer Datensicherung über eine separat zu erstellende Konfigurationsdatei, deren Dateiname frei wählbar ist und keine definierte Dateiendung besitzt. Auf diese Weise ist es möglich, mehrere verschiedene Konfigurationen für unterschiedliche Aufgaben zu erstellen und auszuführen. Es ist nur darauf zu achten, dass sich das jarss-Ausführungsskript und die Konfigurationsdatei(en) im selben Verzeichnis befinden.

So funktioniert jarss genau

Synchronisierte Datensicherung

Bei der ersten Ausführung einer synchronen Datensicherung werden zunächst alle Quelldaten in das gewünschte Zielverzeichnis übertragen, bei allen weiteren Ausführungen werden nur die zwischenzeitlich geänderten, neu hinzugekommenen oder gelöschten Quelldaten mit dem Zielverzeichnis verglichen und entsprechend übertragen. Um einem möglichen Datenverlust vorzubeugen, können bei Bedarf alle zwischenzeitlich gelöschten Daten der Quelle(n) im Ziel für einen vordefinierten Zeitraum in einen Papierkorb mit dem Verzeichnisnamen @recycle verschoben werden. Erst nach Ablauf dieser Aufbewahrungsfrist werden die Daten unwiderruflich gelöscht.

Inkrementelle Datensicherung

Bei der ersten Ausführung einer inkrementellen Datensicherung werden alle Quelldaten in einem Unterverzeichnis, das nach Datum und Uhrzeit der aktuellen Sicherung benannt ist, in das gewünschte Zielverzeichnis übertragen. Unmittelbar danach wird mittels Symlinks ein Image der aktuellen Sicherung erstellt, das auf den i.d.R. nicht sichtbaren Ordner ~latest verweist, der sich ebenfalls im Zielverzeichnis befindet.

Beim nächsten und allen weiteren Durchläufen werden die Quelldaten zunächst immer mit dem zuletzt erstellten Image (~latest) der vorherigen Sicherung verglichen. Dann wird im Zielverzeichnis erneut ein Unterverzeichnis mit dem Namen des aktuellen Sicherungsdatums und der aktuellen Sicherungszeit angelegt, wobei diesmal nur alle zwischenzeitlich geänderten oder neu hinzugekommenen Quelldaten übertragen werden, zwischenzeitlich gelöschte Quelldaten werden nicht berücksichtigt. Unveränderte Quelldaten erhalten im Ziel lediglich einen Verweis (sog. Hardlinks) auf die bereits im Image vorhandenen Daten und werden daher nicht erneut übertragen. Dadurch entsteht der Eindruck, dass jede neu erstellte Version den gesamten aktuellen Datenbestand und den damit verbundenen Speicherplatz enthält, obwohl sich der tatsächliche Speicherplatzbedarf nur auf die Änderungen seit der letzten Sicherung beschränkt.

Um die Anzahl der Versionen zu begrenzen, können diese nach Ablauf einer vordefinierten Zeitspanne in Tagen automatisch gelöscht werden.

Weitere Merkmale von jarss

  • CLI-basiertes Shell-Skript, daher wahrscheinlich (nach individueller Prüfung) auf den meisten unixoiden Betriebssystemen lauffähig.
  • Obwohl jarss vorzugsweise vom Systembenutzer root oder über sudo ausgeführt werden sollte, ist eine Ausführung als Benutzer, wenn auch mit gewissen Einschränkungen, durchaus möglich.
  • Neben der Sicherung lokaler Pfade können auch Pfade zu oder von entfernten Servern über eine zuvor eingerichtete SSH-Public-Key-Authentifizierung gesichert werden.
  • Die optionale Geschwindigkeitsbegrenzung von rsync wird deaktiviert, sobald das Programm ionice von jarss lokalisiert wurde. ionice ist in der Lage, die hohe Lese- und Schreiblast, die normalerweise durch den rsync-Prozess verursacht wird, so optimieren, dass die Verfügbarkeit des lokalen Systems und der an diesem Prozess beteiligten Remote-Server jederzeit gewährleistet ist.
  • jarss verwendet sowohl die von rsync unterstützte synchrone als auch die inkrementelle Datensicherung, wobei die inkrementelle Datensicherung eine Kombination aus Hardlinks und Symlinks verwendet, um Dateien und Verzeichnisse über Dateisystemgrenzen hinweg verknüpfen zu können.
  • jarss gibt während der Ausführung detaillierte Informationen über den aktuellen Fortschritt der Datensicherung über das Terminal aus und erstellt gleichzeitig ein detailliertes Protokoll zur späteren Durchsicht.