Linux Backup auf SMB-Laufwerk

Linux Backup auf SMB-Laufwerk

Ich habe bei mir Zuhause einen kleinen Pi 3 stehen, der als Git Server seine Arbeit verrichtet und nebenbei auch noch die Bilder von StaticFloat komprimiert. Das gute Stück hat allerdings nur eine Festplatte, besser gesagt eine SSD, und wenn diese einmal ausfallen sollte, dann ist das Problem groß. Sehr groß sogar, denn auch wenn ich den aktuellen Codestand noch lokal auf meinem PC hätte, so wären alle nicht vorhandenen Branches weg und auch alles Andere, was ich gerade nicht lokal auf dem PC habe.

Eigentlich ist es ja auch völlig egal, was ich nun genau auf meinem Pi habe. Wenn es Ausfälle gibt oder ich einen Fehler mache, dann ist der Datenverlust da. Egal was für Daten es waren.

Backup auf SMB-Server

Die Lösung ist relativ nahe liegend. Ich benötige ein Backup. Am Besten sogar noch in selbst definierten Intervallen und ohne mein Zutun. Unter Linux hat man für eben diese Fälle einen Cronjob. Dieser Cronjob ist ein Programm/Dienst, der im Hintergrund aufgeführt wird und aus einer bestimmten Datei die auszuführenden Programme ausführt, wenn diese “an der Reihe” sind. Das bedeutet eigentlich nur, dass wir über den Befehl “sudo crontab -e” in der Konsole definieren können, welche Konsolenbefehle, zu welcher Zeit ausgeführt werden sollen. Diese Befehle werden dann immer mit Sudo-Rechten ausgeführt.

Ich habe mir also einen neuen Account auf meiner NAS eingerichtet, der Zugriff auf einen bestimmten Ordner via SMB hat. Dann habe ich ein Bash-Skript erstellt, welches den Pi dazu anweist die Home-Ordner aller Nutzer auf dem Pi zu komprimieren und diesen ZIP-Ordner lade ich dann auf den Server hoch. Bzw. ich komprimiere den Home-Ordner direkt als Datei auf dem Laufwerk. Anschließend wird die Verbindung zur Nas wieder unterbrochen.

Das Bash-Skript besteht aus folgenden Befehlen:

# Einbindung des SMB-Laufwerkes als lokalen Ordner "backup"
mount //[IP des SMB Laufwerkes]/[Ordner, auf dem das Backup landen soll] /backup -o vers=2.0,sec=ntlm,username=[Nutzername auf dem SMB Server],rw,file_mode=0777,dir_mode=0777,password=[Passwort des Nutzers auf dem SMB Server]

# Komprimierung der Home-Ordner in ein Archiv mit Datum
tar -zcvf backup/"home-$(date '+%Y%m%d').tar.gz" --directory="/home" . 

# Schließen aller Verbindungen zu Servern
umount -a -t cifs

Wichtig ist, dass ihr dieses Skript als backup.sh in den Root-Ordner des Pi speichert und noch einen Ordner “backup” im Root-Ordner erstellt.

Anschließend geben wir den Befehl “sudo crontab -e” ein und fügen am Ende der Datei ein:

0 0 * * * cd / && sh ./backup.sh

Jetzt wird jeden Abend um 0:00 Uhr ein Backup erstellt.

Marvin

Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Hat dir dieser Artikel gefallen?

Kommentar hinzufügen

*Pflichtfeld