Backup Zarafa Server
Gestern hatte ich mal Langeweile und überlegte mir mal ne Lösung wie ich meinen Zarafa Server backupen kann, denn mittlerweile wäre es kritisch wenn da was von weg käme. Da ich die community Edition verwende kann ich leider nicht das Brick Backup der kommerziellen nutzen. Also Überlegung war, mysqldump und den Kram dann auf meine NAS zu Hause, da das aber relativ lang dauern würde und meine NAS Nachts aus ist dachte ich mir, wieso nicht Dropbox nutzen.
Also mysqldump von der Datenbank und ab in den Dropbox Sync Folder, aber Sicherheits geht vor, deshalb wird vorher noch verschlüsselt.
1. Dropboxkonto anlegen/verknüpfen
Für alle die nicht wissen was Dropbox ist -> Wikipedia. Ein neues Konto habe ich einfach über dropbox.com angelegt und dann wie folgt mit meinem Server verknüpft.
1.1 Runterladen der aktuellen Dropbox Version:
32Bit: wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86
64Bit: wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86_64
1.2 Archiv entpacken
tar -xvzf dropbox.tar.gz
1.3 Dropbox starten
cd ~/.dropbox-dist/
./dropboxd
1.4 Der Link der nach dem Start als Meldung ausgegeben wird in dem Browser eingeben und durch eingeben seines Passwortes wird das Konto verknüpft und es wird ein Dropbox Ordner im Homeverzeichnis erstellt.
Bsp: This client is not linked to any account… Please visit https://www.dropbox.com/cli_link?host_id=745112368aa32f542f2xdas673345462q1 to link this machine.
1.5 Da Dropbox sich beendet sobald die SSH Session geschlossen wird habe ich ihn mit nohup ./dropboxd & einfach im Hintergrund laufen. Man kann es natürlich noch schöner machen mit einem Startscript, aber da hat ich jetz kein Bock drauf.
2. Backupen, verschlüsseln, ab nach Dropbox
Dafür hab ich mir ein kleines Script geschrieben:
#!/bin/sh
#Database to backup
database=’zarafa‘
mysqldump=/usr/bin/mysqldump
dumpoptions=‘–single-transaction –skip-opt –add-drop-table –add-locks –create-options –disable-keys –extended-insert –quick –set-charset‘
user=‘–user=zuser‘
password=‘–password=plapasswordpla‘
gpgpasswd=’geheimpassword‘
# Pfade
dropboxdir=/root/Dropbox/Backup/
dropboxfile=/root/Dropbox/Backup/zarafa-backup.dump.gpg
backupdirfile=/var/backups/zarafa-backup/zarafa-backup.dump
gpgdirfile=/var/backups/zarafa-backup/zarafa-backup.dump.gpg
#############################################
$mysqldump $user $password $dumpoptions $database > $backupdirfile
echo Dump complete > /var/backups/zarafa_backup-log.txt
#Wenn gpgdirfile existiert
if [ -f $gpgdirfile ]
then
#dann lösch und mach neu
rm -rf $gpgdirfile
echo Delete old gpg File >> /var/backups/zarafa_backup-log.txt
gpg –symmetric –passphrase $gpgpasswd $backupdirfile
echo Backup gpg File >> /var/backups/zarafa_backup-log.txt
else
gpg –symmetric –passphrase $gpgpasswd $backupdirfile
echo Backup gpg File >> /var/backups/zarafa_backup-log.txt
fi
#Wenn dropboxfile existiert
if [ -f $dropboxfile ]
then
#dann lösch und mach neu
rm -rf $dropboxfile
echo Delete $dropboxfile >> /var/backups/zarafa_backup-log.txt
mv $gpgdirfile $dropboxdir
echo gpg file moved to $dropboxdir >> /var/backups/zarafa_backup-log.txt
else
mv $gpgdirfile $dropboxdir
echo gpg file moved to $dropboxdir >> /var/backups/zarafa_backup-log.txt
fi
##Sende eine Email mit dem Backuplog an mich
echo | cat /var/backups/zarafa_backup-log.txt | mail -s “Zarafa_Backup_Log” admin@hueb-ner.de
exit
Jetz noch den Spaß in die crontab damit das auch jede Nacht gemacht wird
00 01 * * * /usr/local/sbin/zarafa-backup.sh #Jede Morgen 1 Uhr
Und fertig wäre schon eine ganz einfache Backuplösung.
Quellen: Dropbox ohne Gui