Die Wichtigkeit eines Backups erkennt man leider oftmals erst wenn es zu spät ist. Ich habe Beispielsweise einmal vernachlässigt die Forensoftware aktuell zu halten. Die Folge war das eine Sicherheitslücke ausgenutzt und die Datenbank teilweise zerstört wurde.
Glücklicherweise hatte mein Provider Backups zur Verfügung so das ich das Forum wiederherstellen konnte. Die hochgeladenen Avatare waren aber leider unrettbar verloren. Seit dem lasse ich aber mit einem Cronjob täglich ein Datenbankbackup erstellen. Zur Veranschaulichung nun die beiden Scripte die ich für Eyes on Linux benutze.
Ein MySQL Dump der Datenbank, setzt vorraus das der Remote Zugriff für die Datenbank aktiviert ist.
BACKUPDIR=“/server2/baggub/eol/db/“
FILENAME=“eyes-on-linux_db_backup_“
DAY=`date +%Y%m%d`# SQL Dump erstellen, der Befehl muss in einer Zeile stehen
mysqldump -h=host -u=benutzername -p=passwort datenbank > $BACKUPDIR$FILENAME$DAY“.sql“# Dateien packen
gzip $BACKUPDIR$FILENAME$DAY“.sql“# all done
echo „backup is döner“
Dann noch alle Dateien per FTP herunterladen und sichern, ich hole gleich alles was auf dem FTP ist, mit Ausnahme von verzeichnis1 und verzeichnis2.
BACKUPDIR=“/server2/baggub/eol/page/“
FILENAME=“eyes-on-linux_ftp_backup_“
DAY=`date +%Y%m%d`cd $BACKUPDIR
mkdir $DAY
cd $DAY# alles vom FTP holen, Befehl muss in eine Zeile
wget -r -X verzeichnis1,verzeichnis2 ftp://benutzername:passwort@eyes-on-linux.de# Dateien packen und komprimieren
cd ..
tar -cf $FILENAME$DAY.tar $DAY
gzip $FILENAME$DAY.tar# Verzeichnis löschen
rm -rf $DAY# all done
echo „backup is döner“
Das ganze wird dann noch als Cronjob in die Crontab eingetragen, welche man mit dem Befehl crontab -e editieren kann. Das db Script wird jeden Tag 2 Uhr morgens ausgeführt, das ftp Script zur selben Uhrzeit aber nur am 1. und 15. im Monat. Eine genaue Erläuterung zur Crontab gibt es bei Wikipedia
0 2 * * * /root/scripts/eol-db.sh # jeden Tag 2 Uhr morgens
0 2 1,15 * * /root/scripts/eol-ftp.sh # jeden 1. und 15. im Monat
ACHTUNG!
Die Methode hat natürlich aber einen gravierenden Nachteil der klar sein muss. Die Passwörter stehen nämlich im Klartext in den Scripten. Am besten erstellt man die Scripte also als root und setzt chmod 711.
Hab ein Script für Datenbanksicherung und Datenbankwiederherstellung, kenne nur die Quelle nicht mehr. Deswegen auch kein Link, aber ein sehr gutes generelles Backupscript, das sogar eine Verschlüsselung des Backups unterstützt, denn oft kann man dem FTP Backupspeicher gar nicht vertrauen(!).
Das Script heißt ESR-Backup und man findet es hier: http://www.edgeofsanity.com
Achja, evtl. machts Sinn wenn Du noch erklärst wie man ein solches Backup wiederherstellt 🙂
Naja die Verschlüsselung bräuchte ich nicht da ich die Backups zu mir lokal ziehe und von zeit zu zeit mal brenne. Wiederherstellen wär noch ein Tipp ja 😉 zumindest wie man den SQL Dump zurückspielt.