Dieser Artikel wurde von Simon als Gastartikel eingereicht!

Wozu Backups?

Ich habe mir schon häufig gewünscht, ich könnte eine Sicherungskopie meines FFP-Ordners zurückspielen. Vorgestern z.B. habe ich ausversehen den gesamten ownCloud Kalender samt Sicherungskopie gelöscht. Meistens hatte ich mich aber versehentlich aus dem NAS ausgesperrt. Einmal ist mir ein chmod-Befehl missglückt und hat den gesamten FFP-Ordner lesbar gemacht. In der Folge verweigert SSH den Dienst, weil die öffentlichen Schlüssel nicht lesbar sein dürfen. Aber es geht auch trivialer: Ein simpler Upgrade-Befehl hat einmal eine inkompatible Version von openSSL installiert. Auch daraufhin kam ich nicht mehr mit SSH auf die Box.

Um mir aus der Patsche zu helfen habe ich in Ulis fun_plug Script herumgeschrieben, das ja bei jedem Start ausgeführt wird.

Ihr erinnert euch? Das haben wir zur Installation von FFP gebraucht. Darin habe ich gesehen, dass das Script im Falle einer Ersteinrichtung von FFP die damals heruntergeladene tgz-Datei entpackt.

So kam mir die Idee, meinen fertig konfigurierten FFP-Ordner in eben solch eine tgz-Datei zu stecken. Dann könnte man ihn von dem Installationsscript ganz einfach wiederherstellen lassen.

Zusammenfassung dessen, was das Script tut

  • Es kopiert den FFP-Ordner wöchentlich (automatisch, zeitgesteuert) in eine tgz-Datei (das ist kurz gesagt eine Linux Zip-Datei).

Dabei wird alles gesichert, das irgendwie mit FFP zu tun hat:

Alle installierten Pakete, pyLoad, twonky, mySQL Datenbanken, ownCloud (mit allen Dateien) usw.

  • Von diesen FFP-Sicherungsdateien behalten wir die drei aktuellsten. (Sie können einige hundert MB groß sein).
  • Ist FFP einmal zerschossen oder die Platte gecrasht, kann es sehr leicht wiederhergestellt werden (siehe unten).

Zur Struktur von FFP

Das FunPlug liegt komplett im Ordner “ffp”. Es besteht aus diesem Ordner und dem Script namens fun_plug. Beides liegt auf der ersten Festplatte. Das FunPlug wird nicht in die Firmware des NAS installiert, sondern eher wie ein Rucksack obendrauf geschnallt. Das bedeutet, dass es komplett deinstalliert ist, sobald ihr die Festplatte herauszieht oder der Ordner “ffp” gelöscht wird. Für uns heißt das: Wenn wir das FunPlug auf seinen Ursprungszustand wiederherstellen wollen, müssen wir das alte FunPlug löschen und unsere Backup-TGZ Datei installieren lassen. Diese beiden Aufgaben werden von zwei Scripten übernommen und sind eigentlich ganz einfach zu initiieren (siehe unten). Aber zunächst installieren wir das Script in’s FunPlug und legen ein Backup an:

Download und Installation

1
2
3
4
mkdir /ffp/opt/ffp-backup && cd /ffp/opt/ffp-backup
wget http://wolf-u.li/u/481 -O ffp-backup.tgz
tar xfj ffp-backup.tgz && rm *.tgz
mv add-cron-ffp-backup.sh /ffp/start && chmod a+x /ffp/start/add-cron-ffp-backup.sh

Das eigentliche Script ist nun unter /ffp/ffp-backup/ffp-backup.sh gespeichert. Das “add-cron-ffp-backup.sh” Script wird bei jedem Start ausgeführt. Es sorgt dafür, dass der Cronjob auch nach einem Neustart des NAS wieder neu festgeschrieben wird (dabei gehen sie nämlich eigentlich verloren, wenn wir nichts dagegen tun).

Dieser Cronjob sagt dem NAS, dass es das Script regelmäßig ausführen soll. Es ist so eingestellt, dass das Backup jeden Sonntagmorgen um 04:00 Uhr startet.

Manueller Start / Speicherort / Log

Nun müsst ihr nichts mehr tun. Das Backup wird wöchentlich angestoßen. Wer gerne jetzt loslegen will, kann das Backup manuell starten:

1
sh /ffp/ffp-backup/ffp-backup.sh

Die Zeitdauer des Durchlaufs hängt von der Größe des FFP-Ordners ab. Zwischen wenigen Minuten und einigen Stunden ist alles möglich, je nachdem wie viele Pakete ihr installiert- und wie viele Daten ihr in der Owncloud habt.

Ihr seht keinen Fortschritt. Interessierte können mit einem beliebingen Texteditor die LogDatei “Volume_1/backup/ffp-backup/backup.txt” öffnen. Darin sieht man, welche Daten gerade in die Datei gepackt werden. Das Backup ist auf der ersten Festplatte in einem neu angelegten Ordner “Volume_1/backup/ffp-backup” gespeichert.

Nach drei Durchläufen (respektive drei Wochen) findet ihr darin folgende Dateien:

  • fun_plug.tgz (aktuellste Version)
  • fun_plug_before.tgz
  • fun_plug_oldest.tgz

Desweiteren ist in diesem Ordner eine Logdatei gespeichert, in der ihr die Ausgabe des letzten Backupdurchlaufes nachverfolgen könnt.

Achtung!

Wenn ihr kein RAID1 nutzt, empfiehlt es sich natürlich, eure TGZ-Sicherungen nochmal auf einer anderen Platte zu speichert, damit ihr auch gegen einen Plattencrash geschützt seid.

Wiederherstellung von FFP

Im Idealfall wollt ihr das FFP auf eine frisch formatierte Festplatte wiederherstellen. Hierzu müsst ihr einfach die Datei “fun_plug” aus der oben verlinkten Anleitung (okay, für Scrollfaule hier nochmal der Link :) zum Installieren des FFP herunterladen, nur dass ihr natürlich eurefun_plug.tgz” Datei aus dem Backupordner mit dem “fun_plug” Script auf das jungfräuliche NAS kopiert und neu startet.

Das war’s!

Alle weiteren Schritte entfallen (Telnet / SSH einrichten). Nach einem Neustart wird euere Sicherung entpackt (das kann eine Weile dauern) und das FunPlug steht mit exakt demselben Funktionsumfang zur Verfügung wie zum Backup Zeitpunkt.


Weniger ideal ist der Fall, wenn ihr euch aus dem FunPlug ausgesperrt habt. Dann ist der Ordner “ffp” ja noch vorhanden und das FunPlug läuft noch. Wir müssen es also erst löschen! Befolgt dazu diese Anleitung zum Deinstallieren des Fun_Plug. Ihr müsst nur die fun_plug Datei ersetzen und neu starten - dann ist das gesamte FFP von der Platte gefegt. Es bleibt nur die Logdatei übrig, die ihr auch löschen könnt.

Daraufhin könnt ihr den eben beschriebenen Idealfall nutzen: Die Platte ist vom alten FFP bereinigt. Ihr kopiert einfach das Installations-“fun_plug” Script und euer Backup auf die erste Festplatte und startet neu. Da das evtl. sehr große Archiv erst entpackt werden muss, kann das Wiederherstellen eine Zeit lang dauern. Schaut einfach in “ffp.log” nach. Solange da steht “Installing tarball” müsst ihr noch warten.

So, viel Erfolg beim (jetzt sicheren) Herumspielen im FFP.