Backups ohne Aufwand: Files und Datenbanken bequem sichern

29. Oktober 2007 | 2 Kommentare

Dieser Artikel beschreibt Sie von einem lokalen Linux-Rechner aus auf verschiedenen Websevern liegende Seiten und Datenbanken automatisiert sichern können. Alles was man dazu braucht ist: MySqlDumper, wget und lynx. Auf den zu sichernden Webservern muss dazu kein Cronjob vorhanden sein. Auf geht’s!

Voraussetzung ist ein Linux Server auf dem wget und lynx installiert sind. Wget ist ein Programm welches das Herunterladen von Dateien über http oder ftp ermöglicht. Lynx ist ein Konsole basierter Webbrowser.

Zuerst den lokalen Linux Server einrichten

Sind wget und lynx nicht installiert kann man sie (unter Debian/Ubuntu) mittels:

apt-get install wget lynx

nachinstallieren.

Zunächst sollte man ein Script anlegen und ausführbar machen:

nano backup.sh

Anmerkung: nano ist ein Konsole basierter Editor, man kann natürlich den Edior seiner Wahl nehmen z.B. vi, joe oder kate (wenn man einen X server hat)

In diese Datei wird nun folgender Code eingefügt:

#!/bin/bash
#
##
### FTP Backup by undkonsorten.com
### Author: Eike Starkmann
### Copyright 2007 undkonsorten.com
###
##
#
# FTP Backup script created by undkonsorten.com
#
# This Script Copies all files from a remote Server to a local dir
# More Servers can be specified in the login.txt
# All logs will be wrtitten in the backup.log
# Since cron does not have envrionment variables
# we have to change with „cd“ where the script lies.
# If you do not run this script with cron you can unmark this line.
#Triggers Mysqldumper to start DB backup
#output goes to mysqldumperlog
mysqldumperlog=“path_to_log_for_mysqldumper“

Die Datei nun abspeichern (Srtg+X mit nano) und ausführbar machen:

chmod 755 backup.sh

Kümmern wir uns nun um den Webserver und die die Datenbanken

Auf dem zu sichernden Webserver müssen wir zuerst den MySqlDumper installieren. MySqlDumper ist ein Datenbank-Backup-Tool. Also einfach den MySqlDumper herunterladen, entpacken und per ftp auf den Webserver laden, der gesichert werden soll. Der mysqldumper muss nun konfiguriert werden, z.B. über http://www.webseite.de/mysqldumper/. Wie das genau geht, ist hier gut beschrieben. Die Installation ist aber eigentlich selbst erklärend.

Folgende Beschreibung, wie Mysqldumper automatisiert wird, ist Voraussetzung für die nächsten Schritte. Es wird davon ausgegangen das das öffnen der URL http://webseite.de/mysqldumper/msd_cron/ crondump.pl?config=mysqldumper.conf.php ein Mysql Backup erstellt. Sollte die nicht der Fall sein gibt es Hilfe im Support-Forum.

Die Datei wieder öffnen

nano backup.sh

und folgendes einfügen:

echo „Starting DB Backup for www.webseite1.de“ >$mysqldumperlogdate >> $mysqldumperlog
lynx -dump -auth username:password http://www.webseite1.de/mysqldumper/msd_cron/ crondump.pl?config=mysqldumper.conf.php 2>&1 >> $mysqldumperlog
echo „Starting DB Backup for www.webseite2.de“ >>$mysqldumperlog
date >> $mysqldumperlog
lynx -dump -auth username:password http://www.webseite2.de/mysqldumper/msd_cron/ crondump.pl?config=mysqldumper.conf.php 2>&1 >> $mysqldumperlog

Dieses Beispiel startet auf 2 Webseiten, nämlich webseite1 und webseite2, ein Datenbank Backup.

echo „Starting DB Backup for www.webseite2.de“ >>$mysqldumperlog

Sorgt dafür das später in der Logdatei zu erkennen ist welches Backup gemacht wurde.

date >> $mysqldumperlog

Schreibt in die Logdatei $mysqldumperlog die Uhrzeit und das Datum.

lynx -dump -auth username:password http://www.webseite2.de/mysqldumper/msd_cron/ crondump.pl?config=mysqldumper.conf.php 2>&1 >> $mysqldumperlog

Für -auth username:password bitte den Usernamen und das Passwort eingeben welches man benötigt um auf die mysqldumper Seite zu gelangen (.htacces geschützt). Die URL muss man natürlich ebenfalls anpassen.

lynx öffnet nun die Webseite, startet das Backup und schreibt die Ausgabe welche normalerweise im Browser zusehen wäre in die Logdatei $mysqldumperlog.

Dies sollte jetzt schon funktionieren – also einfach die Datei ausführen

sh bachup.sh

und danach in der Logdatei nach schauen ob alles gemacht worden ist.

Kommen wir nun zu dem FTP-Backup der kompletten Seite

Zunächst legen wir eine login.txt an in die alle FTP-Logins von den zu sichernden Daten kommen:

nano login.txt

Diese könnte dann wie folgt aussehen:

ftp://user:pass@webseite1.de/
ftp://user:pass@webseite2.de/“

Sollten Sonderzeichen im Passwort/User enthalten sein müssen diese per Urlencode encodiert werden, z.B. # wird zu %23

Nun wird die backup.sh wieder geöffnet:

nano backup.sh

und folgenden Code eingefügt:

#Makes FTP Backups
cd /path/to/backup.sh
wget -r -o backup.log -N -l0 -nv -i login.txt

wget lädt nun alle geänderten Dateien von allen Webserver welche in der login.txt angegeben sind herunter. Die Ausgabe wird in der backup.log gespeichert. Da Cron nicht mit Umgebungsvariablen umgehen kann müssen wir erst in das Verzeichnis wechseln in der die backup.sh und die login.txt liegen.

Nun muss nur noch die backup.sh per Cron regelmäßig gestartet werden:

crontab -e
0 3 1,4,7,10,13,16,19,22,25,28 * * backup-sh

Jetzt wird jeder 3. Tag das backup ausgeführt. Fertig!

Ähnliche Artikel:

Meta-Daten



2 Kommentare

Auch mal Kommentieren:

Kommentar