Backup aller Websites

Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Backup aller Websites

Beitrag von Dalamar »

Hallo Gemeinde,

wir haben ein kleines Problemchen.
Und zwar haben wir einen Managed Server bei Strato gemietet. Auf diesem Server haben wir ca. 30 Kundenseiten laufen, alle separat in einer Datenbank mit jeweils einer Contenido-Installation. Nun habe ich den Auftrag erhalten, irgendein Backup-System zu installieren, dass per Cronjob alle Datenbanken sichert und diese per FTP auf einen unserer Rechner zieht. Die Dateien der Contenido-Installationen sollen ebenfalls per FTP und Cronjob gesichert werden.

Wie gehe ich dieses Problem am Besten an. Welche Tools könnt Ihr mir empfehlen?

Apropos Tools: Ich habe die Suche dieses Forums bereits bemüht und einen Thread gefunden, indem der MySQLdumper empfohlen wurde. Nach der Installation und einigen Testläufen war ich auch sehr begeistert von dem Tool, aber wie soll es auch anders sein, traten diverse Problemchen auf. Mit dem MySQLdumper kann ich jeweils nur eine Datenbank ansteuern. Möchte ich eine zweite Datenbank backup'en, muss ich das Config-File ändern. Irgendwie blöd... Es wäre schön, wenn ich alle unsere Datenbanken über ein Array (sowie bei phpmyadmin) in der Config-Datei definieren könnte.

Gibt es andere (freie) Tools mit dem ich bequem Backups erstellen kann ?

Vielen Dank für Eure Antworten.
Christian
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Du kannst Dir ein PHP-Skript schreiben. Anleitung für die Erstellung eines Dumps via PHP findest z.B. in der FAQ von http://www.1und1.de.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Ist schonmal 'ne gute Idee. Aber fertige PHP oder Perl-Skripte gibt es doch bestimmt, oder ?
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
abrek
Beiträge: 103
Registriert: Mi 25. Jan 2006, 12:50
Kontaktdaten:

Beitrag von abrek »

Dalamar hat geschrieben:Ist schonmal 'ne gute Idee. Aber fertige PHP oder Perl-Skripte gibt es doch bestimmt, oder ?
Hallo Dalamar,

das hier: http://www.mysqldumper.de habe ich schon mehrmals fast an jeder Kundenseite eingesetzt. Es ist stabil, kann DB-Dump per e-mail oder ftp an Deinen Rechner weiterleiten, ist viel drin. Einfach ausprobieren.
Beste Grüße
abrek
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Re: Backup aller Websites

Beitrag von rezeptionist »

Dalamar hat geschrieben: Apropos Tools: Ich habe die Suche dieses Forums bereits bemüht und einen Thread gefunden, indem der MySQLdumper empfohlen wurde. Nach der Installation und einigen Testläufen war ich auch sehr begeistert von dem Tool, aber wie soll es auch anders sein, traten diverse Problemchen auf. Mit dem MySQLdumper kann ich jeweils nur eine Datenbank ansteuern. Möchte ich eine zweite Datenbank backup'en, muss ich das Config-File ändern.
greets
DSB
Beiträge: 9
Registriert: Mi 12. Jan 2005, 12:26
Kontaktdaten:

Re: Backup aller Websites

Beitrag von DSB »

rezeptionist hat geschrieben:
Dalamar hat geschrieben:Mit dem MySQLdumper kann ich jeweils nur eine Datenbank ansteuern. Möchte ich eine zweite Datenbank backup'en, muss ich das Config-File ändern.
Das ist so nicht richtig.
Mit MySQLDumper kann man einen MySQL-User verwalten.
Dieser kann durchaus Berechtigungen für mehrere Datenbanken haben, so dass der Dumper über diesen User auch mehrere Datenbanken sichern und verwalten kann.

Es gibt nur einige Anbieter, die für jede Datenbank automatisch auch einen eigenen, neuen MySQL-User generieren, so dass der User nur Berechtigungen für eine Datenbank hat.
Um den MySQL-User zu wechseln braucht man aber das config-File nicht händisch anfassen, sondern kann unter "Konfiguration/Verbindungsparameter einblende" bequem zwischen den Usern hin- und her wechseln. ;)

Wenn man mit Cronjobs und Perl arbeiten kann, kann man sich durchaus verschiedene Konfigurationsfiles (mysqldumper1.conf, mysqldumper2.conf, usw..) mit den unterschiedlichen Usern anlegen und so über mehrere Cronjobaufrufe alle Datenbanken abdecken.
knb
Beiträge: 224
Registriert: Fr 9. Sep 2005, 14:03
Wohnort: Potsdam
Kontaktdaten:

Beitrag von knb »

Mysqldumper kenn ich gar nicht, muss ich selber mal ausprobieren.

Ich mache das mit so einem script um ALLE mysql datenbanken zu dumpen. Files werden bz2-komprimiert. Shellzugang zu Unixrechner wird benötigt.

dump_all_mysqldbs.sh

Cronjob sieht so aus:

07 4 * * * /path/to/shellscript/dump_all_mysqldbs.sh

Code: Alles auswählen

#!/bin/sh
# modifiziert von Vorlage: KommentarAbschnitt
# http://dev.mysql.com/doc/mysql/en/mysqldump.html

# wegen chmod befehl in letzter zeile:
# Dieses script kann korrekt von unixuser ... ausgeführt werden
# knb Sep 6 2004
host=`uname -n`
if [  $# -eq 1 ]
then
 host=$1
fi
date=`date -I`
pw=`cat /path/to/hiddenfile`
outd=/path/to/outdir
myd=/path/to/mysql/bin
${myd}/mysqldump -usomeuser -p$pw -h${host} --opt --all-databases | bzip2 -c > ${outd}/mysqldb_backup_${host}-${date}.sql.bz2
chmod g+w ${outd}/mysqldb_backup_${host}-${date}.sql.bz2

Code: Alles auswählen

-rw-rw-r--    1 knb      100      37910490 May 21 04:17 mysqldb_backup_HOST-2006-05-21.sql.bz2
-rw-rw-r--    1 knb      100      37882543 May 22 04:17 mysqldb_backup_HOST-2006-05-22.sql.bz2
Dieses Script sichert den gesamten DB server in einer Riesendatei. Das ist möglw nicht genau das was du willst, aber es reicht für den Anfang.

Man braucht noch ein script das nur bestimmte DBs sichert, und 1 File pro DB anlegt.

Ausserdem gehört eigentlich noch mehr dazu:
man sollte dann noch ein script aufsetzen das die dumps regelmässig auf einem anderen host abspeichert ,
und ein script was alte dumps löscht damit die Partition nicht volläuft.

Dann habe ich noch ein Script was alle DBs wieder auspackt, und so einspielt dass der ganze Server wieder hergestellt wird,
und ein Script das nur contenido DBs auf einem fremden mysql - Server einspielt, und die Pfade anpasst z.B. zum Erzeugen einer Entwicklungsversion oder einer "Rückfallösung", oder zum Ausprobieren o.g. Scripts (kann man ja schlecht anhand des Produktionssystems testen :wink: ).

Diese Scripts habe ich auch aber sie sind etwas länger, und es ist mir jetzt zu mühsam die vertraulichen Infos (pfadnamen etc) zu entfernen.
Gruss,
Knut
DSB
Beiträge: 9
Registriert: Mi 12. Jan 2005, 12:26
Kontaktdaten:

Beitrag von DSB »

knb hat geschrieben: Man braucht noch ein script das nur bestimmte DBs sichert, und 1 File pro DB anlegt.

Ausserdem gehört eigentlich noch mehr dazu:
man sollte dann noch ein script aufsetzen das die dumps regelmässig auf einem anderen host abspeichert ,
und ein script was alte dumps löscht damit die Partition nicht volläuft.
Genau diese Optionen (und noch ein paar mehr) bietet MySQLDumper über ein mitgeliefertes Perlscript. ;)
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

@DSB: Da Du der bzw. einer der Entwickler von mysqldumper bist, kannst Du mir sicherlich erklären, wie genau ich mehrere DBs, die alle unterschiedlichen Benutzern zugeordnet sind, dumpen kann !? In eurem Forum habe ich dazu keine Informationen gefunden bzw. nur Post, die aussagen, dass man keine Backups von verschiedenen DBs verschiedener User machen kann.

Wie genau muss ich die mysqldumper.conf anpassen, damit das perl-Script verschiedene DBs dumpt ?

$dbhost="xxxxx.serverkompetenz.net";
$dbname="";
$dbuser="";
$dbpass="";
$cron_save_all_dbs=1;
$cron_db_array="";
$cron_dbpraefix_array="";
$dbpraefix="";
$command_beforedump_array="";
$command_afterdump_array="";
$compression=1;

Auf unserem Strato-Server gibt es z.B. folgende DBs:

db00010100 (User: dbo00010100, PW: test1)
db00010200 (User: dbo00010200, PW: test2)
db00010300 (User: dbo00010300, PW: test3)

Im Config-File kann ich aber nur einen User einstellen, also wie genau soll's funktionieren ?

Gruss + Danke,
Christian
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
DSB
Beiträge: 9
Registriert: Mi 12. Jan 2005, 12:26
Kontaktdaten:

Beitrag von DSB »

Warum willst Du denn die Datei im Editor verändern?
Wir haben doch so eine schöne Web-Gui dafür gemacht. ;)

Geh in die Konfiguration und stelle den ersten MySQL-User unter "Verbindungsparameter einblenden" ein. Danach stellst Du alles so ein, wie es sein muss und speicherst die Konfiguration im Cronscript-Teil meinetwegen unter dem Dateinamen "mysqldumper1.conf" ab.
Dann wechselst Du den User, wiederholst die Einstellungen für den zweiten User und speicherst diese Einstellungen meinetwegen unter mysqldumper2.conf ab.

Jetzt musst Du nur noch 2 Cronjobs machen und übergibst als Parameter jeweils den Namen des entsprechenden Konfigurationsfiles (siehe Beispielaufruf unter Backup/Perl).
Fertig.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Gut, dann haben wir erstmal den gleichen Erkenntnisstand. Pro Configfile, kann man nur EINEN DB-User einstellen. Da wir ca. 200 Datenbanken mit jeweils einem User haben, bräuchte ich quasi 200 Configfiles und 200 Cronjobs oder ein Tool was mir umständlich die Config-Files switcht.

Und somit geht die Odysee nach einem geeigneten Backup-Tool weiter... :roll:

EDIT: @DSB: Trotzdem ein sehr geniales Tool, was ich im Privatbereich sicherlich einsetzen werden. !!!LOB!!!
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
DSB
Beiträge: 9
Registriert: Mi 12. Jan 2005, 12:26
Kontaktdaten:

Beitrag von DSB »

Danke für Dein Lob. ;)

Eine Erweiterung des Dumpers für die Verwaltung beliebig vieler MySQL-User ist geplant. Allerdings wollen wir diese Variante nicht als Open Source kostenlos zur Verfügung stellen. Noch ist es auch nicht so weit.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Schon eine Ahnung was eine solche Lizenz ungefähr kosten würde ??? Interesse besteht auf alle Fälle!
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
DSB
Beiträge: 9
Registriert: Mi 12. Jan 2005, 12:26
Kontaktdaten:

Beitrag von DSB »

Es wird sich im annehmbaren Rahmen halten, soviel kann ich versprechen. ;)
Da wir aber noch nicht einmal das Produkt haben, ist eine Überlegung über den Preis noch hinfällig. Ich denke an eine kleine Staffelung nach Anzahl der MySQL-User. Noch ist aber nichts sicher.
Meld Dich einfach bei mir im Forum an. Wenn es etwas neues gibt (aber nur dann - ich hasse Spam!), schicke ich einen Newsletter rum.
Dalamar
Beiträge: 298
Registriert: Di 16. Nov 2004, 15:43
Wohnort: Arnstadt / Thüringen
Kontaktdaten:

Beitrag von Dalamar »

Mach ich ... vielen Dank!
Beruflich: eComradeGroup und Media Atoll
Privat: Fantasybuch.net ;)
Gesperrt