#PrismBreak – Daten sichern

Owncloud wurde bei mir so eingerichtet, dass eine PostgreSQL Datenbank genutzt wird. Die Daten, die dort gespeichert werden, sollte man sichern für den Fall, dass der Rechner einmal nicht mehr so will wie man es selbst will. Da auf der PrismBreakBox auch die Mails liegen, sollten diese auch gesichert werden. Und die Sicherungen sollten auch automatisiert laufen.

Zum Komprimieren der Daten nutze ich jetzt pigz. Es verteilt das Komprimieren der Daten auf mehrere Rechenkerne. Zum Installieren folgende Befehle ausführen:

su -
apt-get install pigz

Mails sichern

Die vorhandenen Mails werden direkt im Filesystem gesichert. Dazu muss das Backup pro Mailuser eingerichtet werden. Zuerst zum Benutzer wechseln, für den das Backup eingerichtet werden soll:

su - username

Nun wird ein Skript angelegt, welches die Daten in eine Datei zusammenführt und komprimiert. Dazu joe backup-mail.sh ausführen. In die neu zu erstellende Datei folgendes einfügen:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar'
BACKUP_COMPRESS_FILENAME='Maildir.Backup.'$CURRENT_DATE'.tar.gz'

tar cvf $BACKUP_COMPRESS_FILENAME --use-compress-program /usr/bin/pigz ./Maildir/* ./Maildir/.??*

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup-mail.sh

Nun noch automatisch einmal am Tag das Skript ausführen lassen mittels Cron:

crontab -e

Folgende Zeile am Ende einfügen:

3 5 * * * /home/username/backup-mail.sh

Damit wird morgens um 05 Uhr 03 das Skript aufgerufen.

Datenbanken sichern

Die Datenbanken werden einfach per Datenbank-Dump in einer Datei gesichert. Mit dieser Datei kann man dann die Datenbank im Fall der Fälle wieder herstellen.

Zuerst wechselt man zum root User zurück um dann zum postgres-User wechseln zu können.

exit
su - postgres

Dann legt man mittels joe backup_owncloud.sh eine Skriptdatei an und fügt folgendes ein:

#! /bin/bash
CURRENT_DATE=$(date '+%Y%m%d')

BACKUP_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump'
BACKUP_COMPRESS_FILENAME='Postgresql.Owncloud.Backup.'$CURRENT_DATE'.dump.gz'

pg_dump owncloud > $BACKUP_FILENAME

pigz -9 $BACKUP_FILENAME

mv $BACKUP_COMPRESS_FILENAME /verzeichnis/wo/backups/abgelegt/werden

Die Skriptdatei mittels folgendem Befehl ausführbar machen:

chmod u+x backup_owncloud.sh

Damit das Skript automatisch ausgeführt wird, wird ein täglicher Cron-Job eingerichtet:

crontab -e

Im Editor folgende Zeile einfügen:

13 6 * * * /var/lib/postgresql/backup_owncloud.sh

Speichern und Editor schliessen. Damit wird das Backupskript jeden Tag um 06 Uhr 13 aufgerufen.