Zeit für backups!

Aloha,

backup muss ja auch sein, spätestens wenn man sich denkt “verdammtes dris ding” wärent sich der Server vor den Augen zerlegt…. um danach wenigstens nicht ganz auf verlorenem posten und ohne daten zu sein, sollte man ein backup machen.

Das führt einen zu ein paar fragen..

  1. was sollte ich eigentlich sichern ?
  2. wie sichere ich ?
  3. und wie kann ich es wiederherstellen ?

fangen wir mit punkt 1 an

Was sollte ich eigentlich sichern?

  • Gesichert werden sollte grundsätzlich immer alles, das das nicht machbar ist bzw. teilweise unsinnig ist ist noch etwas anderes, aber gesichert werden sollte u.a die mysql datenbank, wichtige Webserver( Ob Spiele oder Produktiv systeme sei mal dahingestellt)

Wie Sichere ich ?

  • Das ist eine interessante frage, nehmen wir z.B. die mysql Datenbank, dazu kann man sich am einfachsten ein kleines bash script schreiben( gilt eigentlich für alle backups)

Ein Script kann z.b. so aussehen

#!/bin/sh
#Aktuelles Datum für Dateinamen setzen
DATUM=`/bin/date +%Y-%m-%d`
# Backup Database:
mkdir /var/backups/mysql_$DATUM
cd /var/backups/mysql_$DATUM
mysqldump --opt --user=</span>--password=</span> --all-databases > mysql_dump.sql</div>
cd /var/backups/mysql_$DATUM
gzip  mysql_dump.sql
cd ..
tar cfv mysql_$DATUM.tar mysql_$DATUM
rm -r mysql_$DATUM was macht das Script jetzt? Es legt sich unter /var/backups/ einen ordner mit dem aktuellen datum an, wechselt in diesen und führt in mysql_$DATUM den befehl vom mysqldump aus, in diesem fall erstellt das script einen dump von der ganzen mysql DB
VORSICHT - bei einer gewachsenen DB kann der dump schon mal einige GB groß werden.
So nun nach dem Dumpen, wird der Dump selber als $DATUM.gzip gespeichert, das Verzeichnis um eine ebene gewechselt und der ganze Ordner noch als mysql_$DATUM.tar gespeichert und die Temporären Dateien werden gelöscht, übrig bleibt nur eine gut verpackte Datenbank Das gleiche kann man auch mit anderen WebServern machen z.B. mit meinem Public Teamspeak, das Script dafür ist fast gleich aufgebaut wenn man mal den teil mit der Mysql DB wegläst
#bin/bash
DATUM=`/bin/date +%Y-%m-%d`
# Backup Database:
mkdir /var/backups/ts_$DATUM
cd /var/backups/ts_$DATUM
cp -R /PFAD/ZUM/SERVER /var/backups/ts_$DATUM
cd ..
tar cfv ts_$DATUM.tar ts_$DATUM
rm -r ts_$DATUM
Nun bringt es aber nichts Scripte anzulegen, wenn man sie immer selber anstupsen muss damit sie in gang kommen, dazu eignet sich "crontab" wunderbar. Wir bearbeiten die crontab ( zu finden unter vim /etc/crontab ). Nach der letzten Zeile fügen wir ein z.b. @daily root /PFAD/ZUM/SCRIPT/backup_ts.sh @daily root /PFAD/ZUM/SCRIPT/mysql_backup.sh was machen diese 2 zeilen nun ? @daily <- tägliches Backup, das script wird pünktlich um 12 Uhr nachts ausgeführt root <-  der Benutzer der das Script ausführen soll der rest klärt sich von alleine ;) Der 3. Punkt auf der liste ist der einfachste, nach dem entpacken des backups in einen entsprechenden ordner kann man nun z.b den mysql dump wieder einspielen mit mysql -u root -p < mysql_dump.sql oder im fall vom teamspeak einfach das Startscript vom server ausführen das war es an der stelle mit den Scripts vom backup auch schon have fun ALEX_DPSG