Backup von Datenbank automatisch anlegen

Kurztipps
Teile diesen Beitrag

Falls dein Raspberry Pi einmal nichtmehr startet, ist die einzige Möglichkeit, ihn wieder zum Laufen zu bringen, ein Backup des System-Images neu aufzuspielen. Wenn du ein Backup der Server-Imagedatei gemacht hast, kannst du dieses ganz einfach wieder auf die SD-Karte laden (siehe eben genanntes Tutorial). Da du aber wahrscheinlich nicht jeden Tag eine Kopie des gesamten Servers machst, sind die neuesten Einträge in der Datenbank nichtmehr vorhanden. Eine Option, die aber nicht sehr komfortabel ist, wäre das tägliche Kopieren der Datenbank per FTP auf deinen Computer. In diesem Tutorial zeige ich dir, wie du automatisch regelmäßig eine Sicherheitskopie der Datenbank-Datei auf einem USB-Stick oder einer USB-Festplatte anlegen kannst. Diese kann bei Bedarf einfach wieder per FTP auf deinen Server kopiert werden. Dazu wird im folgenden ein Cronjob angelegt, also ein Befehl, der vom Betriebssystem immer zu einer durch Regeln definierten Zeit ausgeführt wird.

Anforderungen für dieses Tutorial

Benötigte Treiber installieren

Damit du USB-Sticks und USB-Festplatten mit den Dateisystemen NTFS und HFS+ verwenden kannst, musst du zuerst die Treiber für diese installieren. Mit den folgenden Befehlen aktualisierst die Quellen und installierst anschließend die benötigten Treiber:

sudo apt-get update
sudo apt-get -y install ntfs-3g hfsutils hfsprogs

USB-Stick mounten

Bevor das Speichermedium letztendlich gemounted wird, muss zuerst ein Ordner erstellt werden, in den es eingebunden wird und der Nutzer Pi wird zum Besitzer des Ordners gemacht. Dies geschieht mit folgenden Befehlen:

sudo mkdir /media/server-backup
sudo chown pi /media/server-backup

Um das Medium einzubinden, wird der Pfad zur Partition des Mediums benötigt. Diesen kannst du mit folgendem Befehl ermitteln:

sudo fdisk -l

Dieser Befehl listet alle Speichermedien mit ihren Partitionen auf. Der angeschlossene USB-Stick ist in meinem Fall der unterste Eintrag mit der Pfad-Adresse “/dev/sda1”.

Hier werden alle Speichermedien aufgelistet.

Hier werden alle Speichermedien aufgelistet.

Der Befehl zum Mounten des Speichermediums hängt von dessen Dateisystem ab (“/dev/sda1” wird mit dem zuvor ermittelten Pfad ersetzt):

Ext4

sudo mount /dev/sda1 /media/server-backup

NTFS

sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/server-backup

HFS+

sudo mount -t hfsplus -o force.uid=pi,gid=pi /dev/sda1 /media/server-backup

FAT32

sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/server-backup

Speichermedium bei jedem Systemstart automatisch einbinden

Damit das USB-Gerät bei jedem Neustart automatisch eingebunden werden kann, wird die UUID des Mediums benötigt. Diese wird mit dem folgenden Befehl ermittelt:

sudo blkid
In der Ausgabe werden nun alle UUID's aufgelistet.

In der Ausgabe werden nun alle UUID’s aufgelistet.

Jetzt suchst du in der Ausgabe nach dem Speichermedium mit dem Pfad, den du zuvor ermittelt hast (in meinem Fall “/dev/sda1”) und merkst dir die UUID (in meinem Fall “FEAD-BC6C”).

Als letztes muss dem System noch mitgeteilt werden, welches Speichermedium bei jedem Systemstart eingebunden werden soll. Dazu bearbeiten wir die Datei “/etc/fstab”:

sudo nano /etc/fstab

An das Ende dieser Datei fügst du nun, je nach Dateisystem deines Sticks, eine der folgenden Zeilen ein und setzt die UUID des Mediums ein:

#FAT32
UUID=[UUID DES MEDIUMS] /media/server-backup vfat defaults,umask=000,users 0 0

#HFS+
UUID=[UUID DES MEDIUMS] /media/server-backup hfsplus defaults,umask=000,users 0 0

#NTFS
UUID=[UUID DES MEDIUMS] /media/server-backup ntfs-3g defaults,umask=000,users 0 0

#Ext4
UUID=[UUID DES MEDIUMS]  /media/server-backup  ext4  defaults  0  0

Das Backup anlegen

Um die Sicherheitskopie der Datenbank nun auf den Stick zu kopieren gibst du einfach den folgenden Befehl ins Terminal ein:

cp /var/www/html/database/data.sqlite /media/server-backup/database-backup.sqlite

Damit du den Befehl aber nicht jedes mal selbst eingeben musst, wird ein Cronjob angelegt, der das Speichermedium bei jedem Systemstart automatisch wieder einbindet. Ein solcher Cronjob ist schnell und einfach angelegt:

Als erstes wird die Crontab-Datei geöffnet:

crontab -e

Dort fügst du am unteren Ende eine neue Zeile ein:

0 0 * * * cp /var/www/html/database/data.sqlite /media/server-backup/database-backup.sqlite

Jetzt speicherst du die Änderungen mit STRG + X, bestätigst mit J und drückst die Eingabetaste. Ab jetzt wird jeden Tag um Mitternacht eine Sicherheitskopie der Datenbank auf den USB-Stick kopiert.

Bei Fragen, Ideen oder Problemen, kannst du mir gerne einen Kommentar hinterlassen.

Teile diesen Beitrag
, , , ,
Vorheriger Beitrag
Backup von Server erstellen
Nächster Beitrag
Raspberry Pi Watchdog einfach einrichten

Ähnliche Beiträge

Menü

Wir nutzen Cookies, um dir passende Inhalte zu präsentieren und dein Surfvergnügen zu optimieren, aktivieren Cookies aber erst, wenn du auf akzeptieren klickst. Weitere Informationen

Wir benutzen Google Analytics, um zu ermitteln, welche Inhalte unsere Besucher sehen wollen und welche nicht. Eingebettete YouTube-Videos helfen dir mittels Cookies nur die Videos zu sehen, die du sehen willst.

Schließen