[HowTo] BackSnap zum Backup von btrfs snapshots

Um meine btrfs installationen mit einem schnellen externen backup zu ergänzen habe ich ein kleines Programm für die Kommandozeile geschrieben. Da es bei mir jetzt gut funktioniert, habe ich es auf github zugänglich gemacht. Das ist in java geschrieben, weil ich halt java gut kann :wink:

Es reicht, die Datei backsnap lokal zu speichern um das programm zu nutzen. Es empfiehlt sich, zusätzlich eine passende scriptdatei zu programmieren, um den Aufruf für ein komplettes backup zu vereinfachen.

Es gibt auch ein deutsches readme (https://github.com/andreaskielkopf/BackSnap/blob/master/backsnap.md)

Prolog

Ein Snapshot ist kein Backup !

Das hab ich schon öfters gelesen. Im Prinzip richtig, aber ein btrfs-snapshot ist so gut wie jedes andere In-System-Backup. Btrfs kann für Privatanwender ein hohes Maß an Sicherheit vor Datenverlust bringen. Mit etwas zusätzlicher Arbeit kann auch das externe Backup für btrfs erreicht werden.

Die Verantwortung für Backups liegt nie bei einem Programm, sondern immer beim Nutzer !

P.S. backsnap arbeitet auch über ssh :wink:

1 Like

Ich habe das Programm jetzt seit einiger Zeit selbst im Einsatz.

Immer wieder tauchen kleinere Fehler auf, aber meist sind sie leicht zu beheben. Die Grundfunktion, backups von den Snapshots zu erstellen funktioniert aber immer tadellos.
Ich selbst verwende Snapper um die Snapshots automatisch zu erstellen und wieder zu löschen. Das Erstellen der Backups mit backsnap klappt auf 5 recht verschiedenen Computern gut.

    1. pc mit manjaro
  • Notebook mit manjaro (nur per ssh und wlan)
  • server (per ssh und Gigabit-Netzwerk)
  • Virtualbox-VM (per ssh)
    1. pc (nur per ssh und langsamem wlan angebunden)

Ich hab jetzt begonnen eine Anleitung (erstmal in deutsch) zu erstellen. Wer Rechtschreibfehler, oder Tippfehler in den Befehlen findet, darf diese gerne hier melden.

Das Program hat zwar auch eine gui um die backups zu verwalten, die Beschreibung dafür folgt aber erst noch.
:footprints:
P.S. Der Aufruf wurde nochmals vereinfacht:

  • Versionsinfo
backsnap -x
  • Einen Snapshot von /.snapshots/… sichern nach manjaro23
backsnap -s / /mnt/BackSnap/manjaro23
  • Alle Snapshots von /home/.snapshots/… sichern nach manjaro23.home
backsnap /home /mnt/BackSnap/manjaro23.home

Alle Backups liegen als “normale” btrfs-subvolumes vor, und sind vollständig (readonly) zugreifbar
:footprints:

Ab jetzt steht eine Betaversion zur Benutzung mit timeshift bereit

Ich hoffe Sie/Du haben/hast das ausgibt genug getestet,
ich hatte schlechte erfahrungen damit gemacht Timeshift Snapshots auf eine Externe Festplatte zu kopieren (oder war es rsync, bin mir nicht mehr sicher.)
Das hat mir eine CPU eines Laptops gegrillt.
Ich habe erst im Nachinein erfahren das so etwas patu nicht möglich ist mit Timeshift.
Das war noch die Zeit als ich ubuntu verwendete, das war noch mit einem 4.x Kernel.
Kann auch irgend ein bug gewesen sein, der den Laptop zerstört hat :confused:

Einen Timeshift snapshot sollte man nur mit btrfs-send kopieren (mit nix anderem).

rsync ist da nicht von Vorteil, weil es nicht den Snapshot selbst kopieren kann, sondern “nur” die enthaltenen Dateien.

Du kannst dir einen Snapshot ähnlich vorstellen, wie ein per dd gemachtes image von einer partition. Das image zu versenden ist was anderes als die einzelnen Dateien zu versenden.

Ich selbst setze das senden/empfangen von btrfs-snapshots seit über 6 Monaten erfolgreich ein. Der Vorgang kann bei 6GB oder mehr auch schon mal länger dauern. Aber selbst wenn abgebrochen wird, gibt es keine Schäden am Dateisystem des Empfängers. (Die Snapshots des senders sind readonly solange btrfs-send arbeitet. Auf der Seite kann nix passieren)

Im schlimmsten Fall ist der empfangene Snapshot nicht finalisiert. Dann ist er kein eigenständiger Snapshot, sondern “nur” ein Verzeichnis mit allen Dateien. Das kann einfach mit jedem Dateimanager wieder gelöscht werden.

Sowohl timeshift als auch snapper machen die snapshots nicht selbst, sondern beauftragen sie bei btrfs.

Das bestechende daran ist, dass die Backups (der Snapshots) ganz normal gemountet werden können, und dann voll lesbar sind.

Manche Snapshots (die auf einem parent aufbauen) werden innerhalb ca. 1 Sekunde übertragen und gesichert. (Je nach Unterschied zum vorigen Snapshot)

1 Like