perfect backup solution – part 2

daily backup

Der erste Durchgang meines Backups soll bei jedem Herunterfahren des Rechners abgearbeitet werden. Ich erstelle ein inkrementelles Backup (Wikipedia) aller Daten, das bedeutet, es werden lediglich alle Dokumente gesichert, die sich seit dem letzten Aufruf geändert haben.

Das bietet einen relativ guten Schutz bei hoher Geschwindigkeit. Nachteil ist allerdings, dass eine Wiederherstellung der Daten durchaus längere Zeit in Anspruch nehmen kann.

Das gesamte Script findet ihr wieder in einem gepackten Verzeichnis, dass ich zum letzten Post dieses Projekts hinzufüge. Ich möchte euch nur die wichtigsten Zeilen dieses Scripts zeigen und erklären.

 $FIND $BACKUPFILES -mtime $AGE \! -type d -print > /tmp/dailybackup.txt
$TAR -cvz --exclude=$EXCLUDE -T /tmp/dailybackup.txt -f /tmp/dailybackup.$DATE.$HOST.tar
$SCP -qBC /tmp/dailybackup.$DATE.$HOST.tar $REMOTEUSER@$REMOTE:$REMOTEDIR/$TYPE/dailybackup.$DATE.$HOST.tar
$RM /tmp/dailybackup.$DATE.$HOST.tar
$FIND $BACKUPFILES -mtime $AGE \! -type d -print > /tmp/dailybackup.txt

In dieser Zeile benutzen wir das Programm find auf unser “Quellverzeichnis” und durchsuchen es nach allen Dokumenten, die jünger als $AGE (ist auf 24 Stunden eingestellt) sind. Diese Liste schreiben wir dann in eine Datei namens dailybackup.txt

$TAR -cvz --exclude=$EXCLUDE -T /tmp/dailybackup.txt -f /tmp/dailybackup.$DATE.$HOST.tar

Mit dem tar-tool entnehmen wir der dailytext.txt – Datei welche Dokumente wir sichern wollen und verpacken diese in eine schöne .tar Datei, die wir mit dem Datum und dem Namen des gesicherten Rechners beschreiben. Somit ist immer alles schön geordnet.

$SCP -qBC /tmp/dailybackup.$DATE.$HOST.tar $REMOTEUSER@$REMOTE:$REMOTEDIR/$TYPE/dailybackup.$DATE.$HOST.tar

Mit dem Tool scp (secure copy) senden wir unser Paket verschlüsselt an unseren Backuprechner, wo es entsprechend gespeichert wird. Alle täglichen Sicherungen liegen dann später im Verzeichnis /backup/daily/ und sind ca. so benannt: dailybackup.03042008-2330.angelking.tar

$RM /tmp/dailybackup.$DATE.$HOST.tar

Am Ende löschen wir die nicht mehr gebrauchten Files.

Wie man ein Bash-Script in Ubuntu beim Herunterfahren des Rechners ausführen lässt.

Ich hab mich zwar lang und breit mit Runlevels gespielt, am Ende bin ich aber erst wieder bei einem Script gelandet. Am einfachsten ist finde ich, ein kleines Script zum herunterfahren zu schreiben.

Sobald man darauf klickt, wird zuerst das Backup durchgeführt und danach der Rechner heruntergefahren.

Mein Script sieht so aus (verkürzt) und ein Icon dafür liegt in der Taskbar:

/home/zero/sync/backupscripts/backup_daily.sh;sudo shutdown -h now

Das wars schon.

Wichtig dabei ist auch, dass der eigene User sudo shutdown ohne Passwort ausführen darf. Andernfalls muss man bei jedem herunterfahren das Passwort eintippen.

Das erledigt man, in dem man in Ubuntu sudo visudo tippt und die Zeile

“%admin ALL=(root) NOPASSWD: /sbin/shutdown” einfügt.

So, erledigt, wenn man jetzt auf dieses Icon klickt (respektive das Script ausführt) wird gebackupt und heruntergefahren. Bei mir geht das ohne merkliche Zeitverzögerung.

Oh bevor ich es vergesse. Für alle Backupscripte, die ihr hier findet, verwende ich keine ssh-passwörter (wikipedia).

Die Authentifizierung der Backup-Clients wird vom Server per public-key verfahren (howto) erledigt. Ist viel sicherer und auch bequemer, da man lange ssh-passwörter nutzen kann, ohne sie sich merken zu müssen. Ich habe meine Keys verschlüsselt hinterlegt, und meine Passwörter per KeePassX gesichert. Im normalen Betrieb brauche ich sie nicht, weil das Vertrauen zwischen den Rechnern automatisch, ohne Eingriff von mir hergestellt wird – nie wieder Passwörter merken/eintippen.

No Comments yet »

RSS feed for comments on this post. TrackBack URI

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>