Fryboyter

Datenbank sichern und verschlüsselt in die Dropbox hochladen

Ungesicherte Daten sind unwichtige Daten. Daher sollte man sich gut überlegen wie und vor allem wohin man seine wichtigen Daten sichert. Bei vielen Betreibern ist zum Beispiel die Datenbank absolut wichtig, da dort die Artikel und Kommentare eines Blogs gespeichert sind. Da eine Datensicherung prinzipiell auf einem anderen Speichermedium zu erfolgen hat als die Originaldaten liegen, habe ich mir überlegt, ob man hierfür nicht eine Dropbox nutzen könnte. Man kann.

Als erstes läd man sich von https://github.com/andreafabrizi/Dropbox-Uploader die Shellscripte herunter und speichert diese in einem Verzeichnis auf den Server. Hier sollte man nach Möglichkeit das Verzeichnis außerhalb des Document Root anlegen.

Nun macht man mittels

chmod +x dropbox_uploader.sh

das Shellscript ausführbar und startet es. Beim ersten Start wird hierbei der Konfigurationsvorgang ausgeführt. Diesem folgt man dann entsprechend (eine Dropbox muss bereits vorhanden sein). Da man hier eigentlich nichts falsch machen kann, gehe ich an dieser Stelle nicht näher darauf ein. Falls doch Fragen aufkommen sollten, meldet euch einfach. Nachdem der Uploader konfiguriert wurde, kann man diesen schon einmal testen indem man mit touch test.txt eine Datei erstellt und diese dann mittels

./dropbox_uploader.sh upload test.txt .

in die Dropbox hochläd.

Nun erstellt man im gleichen Verzeichnis in dem das Shellscript liegt ein weiteres. Beispielsweise backup.sh. Dies füllt man dann wie folgt:

#!/bin/bash
set -e DAY=`/bin/date +%Y%m%d`
PASSPHRASE='a=Fr#M?w\\+.Qg3T.qD)x'
mysqldump -u benutzername -p'4567' datenbankname | gzip -9 > /home/benutzername/Dropbox-Uploader/$DAY.sql.gz
gpg --batch --cipher-algo AES256 --passphrase=$PASSPHRASE -c /home/benutzername/Dropbox-Uploader/$DAY.sql.gz
cd /home/benutzername/Dropbox-Uploader/ 
./dropbox_uploader.sh upload "$DAY.sql.gz.gpg" . 
rm /home/benutzername/Dropbox-Uploader/$DAY.sql.gz 
rm /home/benutzername/Dropbox-Uploader/$DAY.sql.gz.gpg

Das ganze Script ist relativ schnell erklärt. Erst wird ein Dump der Datenbank “datenbankname” erstellt und gepackt. Hierbei wird der Dateiname wie in Zeile drei definiert erstellt (Jahr/Tag/Monat). Als nächstes wird das so erstellte Archiv mittels gpg und dem in Zeile vier hinterlegtem Passwort verschlüsselt. Danach wird die verschlüsselte Datei in die Dropbox hochgeladen. Abschließend wird sowohl die verschlüsselte als auch die unverschlüsselte Datei vom Server gelöscht.

Nun legt man sich am besten noch einen Cronjob an mit dem dann das eben erstelle Script regelmäßig ausgeführt wird und somit die Datenbank automatisch gesichert wird.

Linux | OSBN

Dropbox vernünftig mit einem TrueCrypt-Container verwenden

https://www.dropbox.com/ ist ja eigentlich eine schöne Sache, um von unterschiedlichen Lokalitäten (nein damit sind keine Kneipen gemeint) auf diverse Daten zuzugreifen. Oder um einfach gewisse Daten außerhalb des Rechners zu sichern. Da aber die Verschlüsselung auf der Seite des Anbieters läuft, bin ich mit solchen Diensten immer sehr vorsichtig. Man kann auch sagen leicht paranoid. Der Einsatz eines TrueCrypt-Containers wäre zwar kein Problem, aber oft wird dann bei einer Aktualisierung immer die gesamte Datei neu hochgeladen und nicht nur die Änderungen. Das kann bei einer geringen Uploadgeschwindigkeit und 2 GB schon mal etwas dauern. Laut dem Dropbox-Client sind es bei mir noch 8 Stunden (weshalb ich das ganze lieber auf morgen verschoben habe. Bin heute Abend ja nicht daheim und deswegen ist der Rechner aus).

Soeben habe ich aber die Lösung gefunden. Caschy beschreibt in seinem Blog eigentlich sehr gut, wie man das Problem bei der Aktualisierung der Containerdatei umgehen kann. Im Grunde ist es eigentlich ganz einfach. Nur muss man es halt erst einmal wissen. Aber lest selbst.

Bei der Linuxversion nennt sich der Punkt im übrigen “Preserve modification time of file containers”.

Ich werde das ganze morgen mal etwas genauer testen. Zum Hochladen eines 2 GB Containers fehlt mir heute die Zeit. Und auf einen kleineren Container habe ich keine Lust.

OSBN | Allgemein