Homeserver/NAS mit Ubuntu 18.04: Teil 7, Backups mit Duplicati und Rsnapshot

Homeserver 18.04 Teil 7 Beitragsbild

Dieser Artikel ist Teil der Reihe selbstgebauter Homeserver/Nas mit Ubuntu 18.04


Über die Bedeutung von Backups will ich nicht viele Worte verlieren. Unser Homeserver ist dafür gedacht unsere wichtigsten Daten zu speichern, wie Fotos und Dokumente. Dementsprechend sollte auch für den Fall vorgesorgt werden dass das System ausfällt, oder Dateien versehentlich gelöscht werden. Denn gegen versehentliches löschen hilft auch das beste RAID-System nichts.

In diesem Artikel wird die Einrichtung von zwei verschiedenen Backuplösungen beschrieben. Die Backupsoftware Duplicati wird für ein Cloudbackup eingerichtet. Duplicati lässt sich einfach installieren und anschließend komfortabel über den Webbrowser bedienen.

Außerdem wird ein lokales Backup auf einer externen Festplatte mit Rsnapshot eingerichtet. Rsnapshot ist ein Backuptool für die Kommandozeile und basiert auf der Nutzung von Rsync und Hardlinks. Dies hat den Vorteil, dass die Daten auf der Backupfestplatte von jedem beliebigen LinuxPC wieder gelesen werden können, ohne dass ein spezielles Tool benötigt wird um auf die Daten zugreifen zu können.

Cloudbackup mit Duplicati

Duplicati ist seit vielen Jahren sehr aktiv in der Entwicklung, aber leider gibt es zum derzeitigen Zeitpunkt noch keine finale Version. Allerdings gibt es Beta-Versionen, welche ich seit längerer Zeit ohne Probleme einsetze. Die Entwicklung findet in sogenannten experimental-Versionen statt. In unregelmäßigen Abständen wird eine experimentelle Version, die sich als zuverlässig herausgestellt hat, als Betaversion herausgegeben.

Duplicati ist ein Open Source Projekt. Die Projekthomepage ist unter duplicati.com zu finden, der Code steht auf GitHub. Duplicati ist eine sehr vielseitige Backupsoftware, besonders was die Speicherziele angeht. Neben lokalen Datenträgern wie USB-Festplatten werden eine Vielzahl an Cloudspeichern unterstützt. Darunter z.B. Dropbox, Amazon Cloud Drive, Microsoft OneDrive und viele mehr. Außerdem werden Standardprotokolle wie FTP, SFTP, WebDAV uvm. unterstützt, so dass sich eine Vielzahl weiterer Cloudspeicher, oder ein eigener Server als Backend einsetzen lassen.

Die Bedienung von Duplicati erfolgt komfortabel über den Webbrowser

Die Installation von Duplicati

Zuerst wird der Downloadlink für die aktuelle (Beta-)Version für Ubuntu von der Duplicati Downloadseite benötigt. Diese wird via Rechtsklick und “Adresse des Links kopieren” (je nach Browser unterschiedlich) in die Zwischenablage kopiert. Über die Kommandozeile auf unserem Homeserver laden wir die Datei anschließend herunter.

Duplicati Link kopieren

cd
wget https://updates.duplicati.com/beta/duplicati_X.X.X.X-X_all.deb

Das heruntergeladene .deb Installationspaket kann jetzt installiert werden. Da Duplicati in C# geschrieben ist, wird zur Ausführung unter Linux das Mono-Framework benötigt, welches automatisch aus den Ubuntu Paketquellen mitinstalliert wird. Die Installation erfolgt mit

sudo apt install ./duplicati_X.X.X.X-X_all.deb

Standardmäßig erlaubt Duplicati den Zugriff auf das Webinterface nur von der selben Maschine aus. Wir wollen aber natürlich von einem beliebigen Computer aus auf das Webinterface zugreifen. Um dies zu ermöglichen muss die Konfigurationsdatei /etc/default/duplicati angepasst werden. Dazu wird diese wieder zuerst mit einem Texteditor geöffnet.

sudo nano /etc/default/duplicati

Dort erweitern wir die Zeile DAEMON_OPTS mit untenstehenden Optionen.

DAEMON_OPTS="--webservice-port=8200 --webservice-interface=any"

Die Konfigurationsdatei sollte danach folgendermaßen aussehen

Duplicati Konfigurationsdatei

Jetzt wird der Duplicati-Dienst noch aktiviert, so dass die Software nach einem Neustart automatisch wieder aktiv ist. Außerdem wird Duplicati gestartet, so dass es direkt einsatzbereit ist.

sudo systemctl enable duplicati.service
sudo systemctl start duplicati.service

Nun kann Duplicati über den Webbrowser über folgende Adresse aufgerufen werden.

http://192.168.30.114:8200

Die Konfiguration von Duplicati

Zuerst wird man von Duplicati mit einem Sicherheitshinweis konfrontiert. Man kann zuerst ein Passwort für die Benutzeroberfläche festlegen, um zu verhindern dass unbefugte Zugriff auf die Einstellungen und die Backups bekommen. Da die Konfigurationsoberfläche von Duplicati von jedem Computer im Netzwerk erreicht werden kann, ist es sinnvoll hier ein Passwort festzulegen. Dies kann aber auch später in den Einstellungen jederzeit nachgeholt werden.

Duplicati Weboberfläche

Die Konfigurationsoberfläche und das Einrichten von Backups mit Duplicati ist selbsterklärend und kinderleicht. Aus diesem Grund verzichte ich auf eine Anleitung zum einrichten des Backups.

Man sollte bei der Einrichtung darauf achten die Ordner /etc sowie /mnt/storage zu sichern. Im ersten liegen die Konfigurationsdateien des Systems, im zweiten unsere Daten. Auch das Sichern des /home Verzeichnisses ist in der Regel sinnvoll.

Lokales Backup mir Rsnapshot

Rsnapshot ist ein Backuptool für die Kommandozeile welches auf rsync basiert. Rsnapshot erstellt, wie der Name bereits andeutet, sogenannte Snapshot-Ordner auf der externen Festplatte. Dabei wird bei jedem Backup ein neuer Ordner erstellt welcher das Backup enthält, wobei es so aussieht als würde jeder Ordner eine vollständige Kopie der gesicherten Dateien enthalten. Durch die Verwendung von rsync wird eine unveränderte Datei aber nur einmal gesichert. Mit einem Hardlink wird die Datei im folgenden Backup verlinkt, wodurch Speicherplatz gespart wird.

Da es sich trotzdem um normale Dateikopien handelt, können die Sicherungen auf der externen Festplatte von jedem beliebigen PC wieder auslesen. Somit ist sichergestellt dass sich die Dateien auch einfach wiederherstellen lassen.

Rsnapshot lässt sich direkt aus den Ubuntu Paketquellen installieren. Um die USB-Festplatte für die Datensicherung automatisch beim einstecken ins System einzubinden, wird zusätzlich das Programm usbmount installiert.

sudo apt install rsnapshot usbmount

USBMount konfigurieren

Usbmount ist direkt nach der Installation einsatzbereit. Beim einstecken einer USB-Festplatte wird dieses automatisch in /media/usb eingebunden. Steckt man mehrere USB-Laufwerke an, so werden die Einbindungspunkte nummeriert, also /media/usb0, /media/usb1 usw.

Standardmäßig unterstützt usbmount die Dateisysteme vfat ext2 ext3 ext4 und hfsplus. Wenn die Backupfestplatte nur für den Homeserver genutzt wird sollte sie mit dem Dateisystem ext4 formatiert werden, da dies das Standarddateisystem bei Ubuntu ist. Wenn man die Festplatte unbedingt auch auf Windows PCs nutzen möchte und die Festplatte somit NTFS formatiert sein muss, muss dieses Dateisystem in der Konfigurationsdatei von usbmount aktiviert werden.

Dazu wird die Datei /etc/usbmount/usbmount.conf mit dem Texteditor geöffnet und in die Zeile FILESYSTEMS= noch ntfs hinzugefügt, so dass die Zeile folgendermaßen aussieht:

FILESYSTEMS="vfat ext2 ext3 ext4 hfsplus ntfs"

Usbmount Konfigurationsdate

Nun kann die USB-Festplatte eingesteckt und das Backupprogramm Rsnapshot konfiguriert werden.

Rsnapshot konfigurieren

Rsnapshot ist einfach zu Konfigurieren. Die Einstellungen erfolgen über die Konfigurationsdatei in /etc/rsnapshot.conf, welche wieder mit einem Texteditor geöffnet wird.

Wichtig: die Trennung von Schlüssel und Werten, also der Zwischenraum zwischen einer Einstellung und der dahinterstehenden Zahl muss mit der Tabulatortaste [TAB ⇆] erstellt werden. Wenn hier normale Leerzeichen stehen wird die Konfigurationsdatei von Programm nicht akzeptiert und Rsnapshot bricht mit einer Fehlermeldung ab.

sudo nano /etc/rsnapshot.conf

In dieser Datei müssen wenige Einstellungen vorgenommen werden. Im oberen Teil wird unter snapshot_root das Verzeichnis angegeben, in welchem die Sicherungen gespeichert werden. In unserem Fall also /media/usb. Außerdem wird die Einstellung no_create_root von 0 auf 1 gesetzt, damit vor dem Backup überprüft wird ob der angegebene Mountpunkt überhaupt existiert.

###########################
# SNAPSHOT ROOT DIRECTORY #
###########################

# All snapshots will be stored under this root directory.
#
snapshot_root /media/usb

# If no_create_root is enabled, rsnapshot will not automatically create the
# snapshot_root directory. This is particularly useful if you are backing
# up to removable media, such as a FireWire or USB drive.
#
no_create_root 1

Als nächstes werden die Aufbewahrungszeiträume festgelegt. In diesem Beispiel wird jedes Backup der letzten sieben Woche aufbewahrt. Von den einmal pro Woche ausgeführten Backups werden vier aufgehoben und von den Monatlichen sechs. Das aktuellste Backup ist somit von heute, bzw von gestern und das älteste Backup ist ein halbes Jahr alt.

Zuerst suchen wir in der Konfigurationsdatei den Block “Backup Levels“. Die bereits vorhandenen Levels, die mit alpha, beta usw. benannt sind, werden mit einer Raute (#) auskommentiert oder gelöscht. Darunter fügen wir unsere Konfiguration ein, die wir der besseren Übersicht wegen daily, weekly und monthly nennen. Wichtig ist hier wieder die Trennung mittels Tabulatortaste. Der bearbeitete Block sieht dann folgendermaßen aus.

#########################################
# BACKUP LEVELS / INTERVALS #
# Must be unique and in ascending order #
# e.g. alpha, beta, gamma, etc. #
#########################################

#retain alpha 6
#retain beta 7
#retain gamma 4
#retain delta 3
#retain hourly 6
retain daily 7
retain weekly 4
retain monthly 6

Im nächsten Schritt wird festgelegt welche Ordner überhaupt gesichert werden sollen. Dies geschieht im Block “Backup Points / Scripts“. In diesem Beispiel werden die Verzeichnisse /home /etc und /mnt/storage gesichert. Mimas gibt den Unterordner auf der der externen Festplatte an unter welchem die Sicherungen gespeichert werden. Das tägliche Backup wird in diesem Fall z.B. unter /media/usb/daily.0/mimas erstellt. Der Backupblock sieht aus wie folgt.

###############################
### BACKUP POINTS / SCRIPTS ###
###############################

# LOCALHOST
backup /home/ mimas/
backup /etc/ mimas/
backup /mnt/storage/ mimas/

Die Konfigurationsdatei kann nun gespeichert werden. Mit dem folgenden Befehl kann überprüft werden ob die die Datei von Rsnapshot verarbeitet werden kann. Wenn es hier zu einer Fehlermeldung kommt, dann wurde wahrscheinlich an irgendeiner Stelle ein Leerzeichen anstelle von Tab verwendet.

sudo rsnapshot configtest

Aktivieren der Rsnapshot Backups und erstellen des ersten Backups

Die Backups werden über einen Cronjob gestartet. Dazu wird die Datei /etc/crontab im Texteditor geöffnet und um folgende Zeilen vor der abschließenden Raute erweitert.

sudo nano /etc/crontab
0 2 * * * root /usr/bin/rsnapshot daily
0 5 * * 1 root /usr/bin/rsnapshot weekly
0 7 1 * * root /usr/bin/rsnapshot monthly

Unsere /etc/crontab sieht mittlerweile so aus.

Crontab für Rsnapshot

Die Befehle können auch manuell ausgeführt werden um ein tägliches, wöchentliches oder monatliches Backup auszuführen. Zum Erstellen eines ersten manuellen Backups wird dieser Befehl ausgeführt.

sudo rsnapshot daily

Anschließend sollte sich unter /media/usb ein neuer Ordner mit dem ersten Backup befinden. In den folgenden Tagen werden jeweils neue, durchnummerierte Ordner erstellt. Wer sich für weitere Einstellungen zu Rsnapshot interessiert sollte sich den wie immer hilfreichen Wikieintrag auf ubuntuusers.de durchlesen.

Ordnerstruktur nach erstem Backup

Schluss

Damit steht nun ein vielseitiges und zuverlässiges System bereit, das kommerziellen fertig NAS-Systemen nicht nachsteht. Der Vorteil eines selbstgebauten Homeservers ist, dass sich dieser speziell auf die eigenen Bedürfnisse ausrichten lässt.

Diese Anleitung soll es insbesondere Einsteigern erleichtern ein solches System aufzusetzen und zu betreiben. Die Einsatzmöglichkeiten gehen jedoch viel weiter als in der hier beschriebenen Artikelreihe. So kann beispielsweise mit Tiny-Tiny RSS ein RSS-Reader eingerichtet werden der mit der App auf dem Smartphone synchronisiert wird. Damit hat mein ein komfortables Tool zur Verfügung um sich über das Weltgeschehen und andere Dinge auf dem Laufenden zu halten. Mit Tiny Tiny RSS lassen sich Diesnte wie Feedly oder Inoreader mit einem eigenen System ersetzen.

Oder man installiert sich eine Wallabag Instanz, und ersetzt einen read it later Dienst wie Pocket oder Instapaper.

Ich selbst setze ein ähnlich konfiguriertes System seit vielen Jahren ein und bin sowohl von der Zuverlässigkeit als auch von der Vielseitigkeit begeistert. Ich hoffe dass der eine oder andere Stolperstein aus der alten Version beseitigt ist und vielleicht inspiriert die Artikelreihe den einen oder anderen dazu ebenfalls ein solches oder ähnliches System selbst aufzusetzen.


Homeserver/NAS mit Ubuntu 18.04: Teil 1, Einleitung, Hardware und Kosten
Homeserver/NAS mit Ubuntu 18.04: Teil 2, Systeminstallation
Homeserver/NAS mit Ubuntu 18.04: Teil 3, Grundkonfiguration
Homeserver/NAS mit Ubuntu 18.04: Teil 4, Dateifreigaben im Heimnetz
Homeserver/NAS mit Ubuntu 18.04: Teil 5, Nextcloud
Homeserver/NAS mit Ubuntu 18.04: Teil 6, Media Streaming mit Plex
Homeserver/NAS mit Ubuntu 18.04: Teil 7, Backups mit Duplicati und Rsnapshot


Anzeige:
Aktualisiert am 22. Juli 2018 um 21:56 . Preise können sich geändert haben. Alle Angaben ohne Gewähr.

2 Kommentare

  1. Hi Niko,
    super interessantes Tutorial, Dank Dir für die viele Arbeit. Aus welchem Grund ist Open Media Vault o.ä. nicht interessant für Dich?
    Grüße, Alex

Kommentar hinterlassen


Die Angabe eines Namens oder einer Webseite ist optional. Weitere Informationen: siehe Datenschutzerklärung