Nach der Erstellung von folgendem Artikel Restic - Ein Backupkonzept habe ich eine Zeit lang gebraucht um mir ein vernünftiges Konzept zu erstellen. Backup's sind eine relativ komplexe und schwierige Materie. Wo lagert man? Was lagert man? Wie sichert man die Daten? usw.
Wichtige Daten in der eigenen Wohnung zu sichern ist so lange eine gute Idee, bis die Wohnung mal brennt oder die Datenspeicher gestohlen werden. Auf dem Smartphone, das wäre auch noch eine Lösung. In der Cloud!? Hat was, aber ich traue allen kommerziellen Anbietern nicht über den Weg. Was machen? Man nimmt was eigenes, z.B. eine Nextcloud Installation. Da hat man weitestgehend alles in der eigenen Hand. Bleibt das Problem, das wir sehr wichtige Daten NUR verschlüsselt in der Cloud ablegen. Wir wollen es einem evt. Eindringling ja nicht zu einfach machen
Gut, das mit der Verschlüsselung haben wir ja gelöst, Restic speichert alle Backup's verschlüsselt. Bei der Suche nach einem Konzept bin ich in der Bedienungsanleitung über die Backends gestolpert, die Restic alle so unterstützt.
Die kommerziellen Sachen scheiden aus usw. Am Ende bin ich über Rclone gestolpert.
Rclone is a command line program to sync files and directories to and from
Rclone syncronisiert also einen Ordner mit einem Clouddienst. Und da kommt nun Restic ins Spiel, Restic nutzt Rclone zum Speichern der Daten in der Cloud. RClone unterstützt Nextcloud (natürlich auch Owncloud). Somit hätten wir ein gutes Team um Daten verschlüsselt in der Cloud abzulegen, welches sich auch relativ einfach automatisieren lassen sollte. Ok, fangen wir vorne an. Ich gehe von einer funktionierenden Restic Installation aus. Als Backend sollte eine Nextcloud Installation irgendwo im Netz laufen. Auf geht's...
Rclone Installation
Dieses Script installiert Rclone auf dem Rechner.
curl https://rclone.org/install.sh | sudo bash
Nach der erfolgreichen Installation kommt folgendes
rclone v1.40 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
Rclone konfigurieren
Mit
rclone config
stellt man die wichtigsten Parameter für Rclone ein.
- Den Namen der Remoteverbindung - nextcloud
- Den Type des Datenspeichers - 20 (Webdav)
- URL of http Host - Den Webdav Pfad zu Eurer Nextcloud Installation
- Name des Webdav Services - 1 (Nextcloud)
- User Name - User Name (In Nextcloud festlegen!)
- Passwort - Passwort (In Nextcloud festlegen)
Das ganze bestätigen und kurz testen.
rclone ls nextcloud:
Nun sollte der Inhalt des Verzeichnisses ausgegeben werden.
frank@frank-MS-7A34 ~ $ rclone ls nextcloud:
5 TESTING.txt
Erledigt, Rclone läuft. Nun der Teil mit Restic....
Restic
Nun schauen wir uns das mal mit Restic etwas genauer an.
Beim ersten Test bekam ich immer eine Fehlermeldung
frank@frank-MS-7A34 ~ $ restic -r rclone:nextcloud init
Fatal: create repository at rclone:nextcloud failed: invalid backend
If the repo is in a local directory, you need to add a 'local:' prefix
Ok, kurz gegrübelt, das Backend ist drin auf github gecheckt. Klick, ich hatte eine alte Version installiert. Also schnell die neue Version gebaut und das Ganze sah schon besser aus.
frank@frank-MS-7A34 ~/restic $ restic -r rclone:nextcloud:TEST init
enter password for new repository:
enter password again:
created restic repository 7d6d14e068 at rclone:nextcloud:TEST
Gut, läuft so weit. Kurz noch einen Anmerkung zum Pfad. Nehmen wir folgende Rclone Einstellung an.
https://PFAD_zu_NEXTCLOUD/remote.php/webdav/BACKUP
Der Restic Aufruf
rclone:nextcloud:TEST
zeigt auf einen Ordner innerhalb des Ordners Backup. Als Pfadangabe:
https://PFAD_zu_NEXTCLOUD/remote.php/webdav/BACKUP/TEST
Somit hätten wir jetzt das Repo vorbereitet und können jetzt unsere Daten dort speichern.
frank@frank-MS-7A34 ~/restic $ restic -r rclone:nextcloud:TEST backup /home/frank/Bilder/21.04/
enter password for repository:
password is correct
found 2 old cache directories in /home/frank/.cache/restic, pass --cleanup-cache to remove them
Hier sieht man einen Aufruf um aus dem Ordner 21.04 die Bilder in Nextcloud zu sichern.Das Passwort wird abgefragt, und wenn korrekt wird gesichert. Im Beispiel tauchen noch alte Cache Dateien auf, hiermit bekommt man die weg.
restic -r rclone:nextcloud:TEST backup /home/frank/Bilder/21.04/ --cleanup-cache
Cronjob anlegen
Schnell ein Script für den Cron schreiben. Das Script heißt backup.sh
#!/bin/bash
# Script um mit Restic & Rclone Daten automatisiert zu sichern!
# PW hinterlegen
export RESTIC_PASSWORD=12345678
#Was soll gesichert werden?
backup_pfad=/media/NAS/
#Programm Start
restic -r rclone:nextcloud:Daten backup $backup_pfad
Einen Cronjob anlegen
crontab -e
Folgendes eingeben
# m h dom mon dow command
00 20 * * * /home/frank/backup.sh
Speichern - Fertig!
Jeden Tag um 20:00 Uhr werden die Daten entsprechend gesichert!