MySQL-Datenbanken automatisch sichern mit MySQLDumper und all-inkl als Hoster

von Nils am 27. Mai 2007

mysqldumperminilogoIch hatte hier vor einiger Zeit in einem Artikel über das geniale Tool MySQLDumper zum komfortablen Sichern von MySQL-Datenbanken auf gehostetem Webspace berichtet.

all-inkl.com webhostingIch selbst bin seit ca. einem 3/4 Jahr zufriedener Kunde bei all-inkl. Viele positive Berichte im Netz, die preisgünstigen und trotzdem leistungsfähigen Tarife und der bisher immer schnelle und unkomplizierte Support haben mich überzeugt. Ein kleiner Wermutstropfen war dabei bisher, dass beim Anlegen von MySQL-Datenbanken in der all-inkl Administration jeweils nicht nur wie üblich einen neuen Datenbanknamen unter einem vorhandenen Datenbanknutzer erhalten, sondern zu jeder einzelnen Datenbank auch ein neuer Datenbanknutzer angelegt wird. So hat man ggf. 20 MySQL-Datenbanken und die dazugehörigen 20 MySQL Benutzer. Diese Tatsache ist zwar für die weitere Nutzung der Datenbanken unerheblich, aber MySQLDumper ging bisher immer davon aus, dass es wie üblich nur einen Nutzer und mehrere Datenbanken gibt, so dass die Backupverwaltung mit MySQLDumper für all-inkl Kunden mit mehreren Datenbanken bisher etwas mühselig war.

Mittlerweile ist dieses Manko aus der Welt, denn mit der neuen Version (1.23 pre-release) lassen sich mit mein Lieblingstool MySQLdumper nicht nur die verschiedene Datenbanken für einen Datenbankbenutzer auswählen, sondern Konfigurationsdateien für unterschiedliche Datenbankbenutzer anlegen, so dass man auch zwischen diesen einfach hin- und herwechseln kann. Ich habe gleich eine Anleitung für die Einrichtung dieses neuen Features und die Einrichtung automatisierter Backups mit all-inkl als Hoster erstellt.

Informationen zur generellen Installation und Einrichtung finden sich auf der MySQLDumperwebsite und in dem deutschsprachigen Support Forum, so dass ich darauf nicht eingehe.

Falls man MySQLDumper später für automatische Backups nutzen möchte, sollte man vor dem Anlegen der Konfigurationsdateien das Perlscript passend konfigurieren, da man sonst später bei allen Konfigurationsdateien die Angabe zur Lage der Perldateien ändern muss. D.h. in diesem Fall besser mit dem zweiten Teil der Anleitung beginnen.

 

1. Einrichten mehrerer Konfigurationen in MySQLDumper für all-inkl

 

Zum Anlegen dieser Konfigurationsdateien wechselt man unter dem Menüpunkt Konfiguration …

mysqld 0konfig

in das Untermenü Konfigurationsdateien:

mysqld 1konfig

Dort lässt sich eine neue Konfigurationsdatei anlegen, indem man einen passenden Namen eingibt und speichert. Allerdings wird dabei die aktuelle Konfiguration übernommen:

mysqld 2konfig

Um nun einen anderen Datenbanknutzer anzugeben, muss unter “Datenbanken” (1.) auf Verbindungsparameter “ein-/ausblenden” (2.) geklickt werden:

mysqld 12konfig

Unter 1. ist hier der für die gewünschte Datenbank zugehörige Nutzername einzutragen (findet sich in der all-inkl Administration unter dem Menüpunkt Datenbanken und ist identisch mit dem Datenbanknamen). Unter 2. trägt man das zu dieser Datenbank gehörige Passwort ein:

mysqld 13konfig

Jetzt speichern wir die Parameter:

mysqld 14konfig

Wenn wir jetzt zu den Konfigurationsdateien zurückkehren …

mysqld 1konfig

… können wir feststellen, dass bei unserer neuen Konfiguration unter

zu sichernde DBs (PHP): XXXXXXX und unter
zu sichernde DBs (PERL): YYYYYYY

noch verschiedene Datenbanken stehen. Ein weiterer Klick auf “Speichern” sorgt dafür, dass bei beiden dieselbe Datenbank eingetragen ist.

Diese Prozedur führt man für jede Datenbank durch, so dass man am Ende durch einfache Auswahl der passenden Konfiguration im Dropdownmenü sofort den passenden Zugriff auf die gewünschte Datenbank hat:

mysqld 15konfig

 

2. Automatisiertes Backup mit dem Perl-Script bei all-inkl

 

Nachdem dies nun problemlos funktioniert, wollte ich unbedingt dafür sorgen, dass das Backup meiner Datenbanken automatisch per Cronjob ausgeführt wird. Hierfür bringt MySQLDumper ein passende Perl Scripte mit, die in dem Ordner “msd_cron” liegen.

Es gibt sowohl in der MySQLDumper Hilfe als auch in dem Beitrag “Features Perl Cronscript (Einstellungen von Konfiguration / Cron)” im MySQLDumper Support Forum ausführliche Informationen zur Einrichtung des Perl Scripts. Zu meiner eigenen Gedächtnisstütze werde ich hier den Einrichtungsvorgang für mich mitprotokollieren.

Wähle im Menü “Backup” …

mysqld 5backup

und klicke auf Backup Perl:

mysqld 6backup

Kopiere die Pfadangabe hinter “Eintrag in crondump.pl für absolute_path_of_configdir” (A)

mysqld 7backup

und öffne das Skript “crondump.pl” (liegt in dem Ordner “msd_cron”) in einem Editor.

Suche die Zeile my $absolute_path_of_configdir=”" und setze den Cursor zwischen die “” und füge den kopierten Pfad ein. Anschließend speicherst Du die geänderte Datei “crondump.pl”.

(An dieser Stelle hatte ich kurzfristig ein paar Schwierigkeiten von den Du bei Interesse weiter unten mehr erfährst.)

Jetzt legst Du einen Ordner mit der Bezeichnung “cgi-bin” im MySQLDumperverzeichnis an.

(Nachtrag: ich will an dieser Stelle auf einige hilfreiche Kommentare weiter unten hinweisen: einerseits scheint es so zu sein, dass der “cgi-bin” Ordner grundsätzlich neu im Hauptverzeichnis der Domain angelegt werden muss. Ein Anlegen in Unterverzeichnissen oder ein Kopieren des Ordners aus einem anderen Verzeichnis in das Hauptverzeichnis scheinen die Ausführung von Perlscript nicht zu ermöglichen. Darüber hinaus gibt es wohl auch Hostingpakete bei denen all-inkl Perl erst aktivieren muss. Genaueres findet ihr in den Kommentaren weiter unten oder indem ihr den all-inkl Support befragt.)

In diesen Ordner kopierst Du das Skript “crondump.pl” sowie die beiden Testskripte “perltest.pl” und “simpletest.pl” per Ascii-Modus (sollte jeder einigermaßen ausgereifte FTP-Client schaffen).

Änder die Dateirechte des Ordners und aller darin befindlichen Skripte per chmod auf 755.

Im MySQLDumper wechselst Du in der “Konfiguration” zum Untermenü “Cronscript”:

mysqld 3conscrkonfig

Dort trägst Du unter “Pfad der Perskripte” den Pfad zu dem neuen Ordner “cgi-bin” ein:

mysqld 4conscrkonfig

… und speicherst diese Einstellung …

mysqld 14konfig

Jetzt kannst Du auf “Backup” wechseln …

mysqld 5backup

… und dort oben auf “Backup PERL” klicken:

mysqld 6backup

Hier prüfst Du nun die Lauffähigkeit mit 1. “Perl testen”. Wenn die Meldung “Wenn Du das siehst, funktioniert Perl auf Deinem System !” erscheint ist alles in Ordnung.

mysqld 7backup

Mit Hilfe von 2. “Perl-Module testen” kannst Du feststellen, ob alle benötigten Module bei dem Hoster verfügbar sind und funktionieren (ist bei meinem all-inkl Tarif der Fall).

Als letzten Schritt kannst Du über 3. “Perl-Cronscript ausführen” das Perl Backup manuell starten und so manuell testen, ob es funktioniert.

Bisher funktionieren diese Backups bei mir mit meinem all-inkl Webspace mit kleineren Datenbanken zwischen 3 und 5 MB. Es gibt allerdings Meldungen von all-inkl Nutzern bei denen das Perl Script vorzeitig abbricht. Ein kurzer Test mit einer 30 MB großen Datenbank scheiterte zumindest beim Emailversand.

Genauer läßt sich das über die Log-Dateien verfolgen, die Du unter “Log” …

mysqld 8log

… und “Perl-Log” oder “Perl-Complete Log” einsehen kannst (diese findest Du auch als komprimierte Dateien im Unterordner “/work/log”):

mysqld 9log

Wenn Perl Script ausführen erfolgreich verlief, testest Du am besten den Link unter B:

mysqld 7backup

Die URL, die aufgerufen wird sieht ungefähr so aus: “http://www.meinedomain.de/cgi-bin/crondump.pl?config= mysqldumper.conf.php”, wobei hier der passende Domainname steht und hinter “…?config=” der Name der Konfigurationsdatei, die für das Backup genutzt werden soll (diese sind in dem Unterordner “/work/config” zu finden und entsprechen dem Namen der jeweiligen Konfiguration plus der Endung “.config.php”).

Die Linkangabe kopierst Du in die Zwischenablage und dann in die Adresszeile Deines Browsers. Nach “Enter” sollte, wenn alles passt, ebenfalls der Backupprozess problemlos ablaufen (ggf. werden Dein Verzeichnisbenutzername und -passwort vorher noch abgefragt). Wenn dieser Test auch erfolgreich verlaufen ist, dann kann Du den passenden Cronjob erstellen. Entweder direkt im Members Bereich bei all-inkl oder, falls keine Cronjobs in dem genutzten Tarif enthalten bzw. keine mehr übrig sind, bei einem externen Dienstleister wie z.B. Cronjob.de .

Einen Cronjob bei all-inkl erstellen

Wenn Dein all-inkl Tarif Cronjobs erlaubt, so kannst Du diese nicht im KAS verwalten sondern im all-inkl Members Bereich.

all-inkl cron010menu

Dort klickst Du dann auf …

all-inkl cron020einrichten

… und gelangst so in folgende Übersicht:

all-inkl cron030einrichten

Nach Klick auf “… neuen Cronjob einrichten.” gelangst Du auf die Konfigurationsseite. Dort trägst Du als erstes den Link (wie oben unter B) für den externen Cronjob ein. WICHTIG: für all-inkl musst Du das “http://” am Anfang weglassen !

all-inkl cron040einrichten

Da Du Dich natürlich an die Sicherheitsempfehlung des MySQLDumpers gehalten hast, hast Du einen Verzeichnisschutz eingerichtet. Daher musst Du nun den passenden Benutzernamen und das Passwort eintragen, damit der Cronjob durch den Verzeichnisschutz kommt:

all-inkl cron050einrichten

Im folgenden kannst Du das Intervall für den Cronjob bestimmen:

all-inkl cron050timing

ACHTUNG 1: Neueinrichtungen und Änderungen werden teilweise erst nach 30 Minuten aktiv. D.h. wenn Du Deine Startzeit zu kurz ansetzt, wird der Cronjob erst beim nächsten Intervall ausgeführt bzw. mit angepassten Einstellungen ausgeführt):

ACHTUNG 2: Wenn Du das Intervall eines bereits bestehenden Cronjobs ändern willst, musst Du unbedingt darauf achten, dass Du einen Haken in das Kästchen “Aktivieren Sie dieses Kästchen, wenn Sie die Ausführzeit ändern möchten.”, dass dann oberhalb des Blocks eingeblendet wird, setzt. Wenn Du das (wie ich es erstmal getan habe) vergisst, dann ändert sich nix an dem Intervall und Du rätzelst lange herum warum es nicht funktioniert :( .

Hier kannst Du Dir noch eine Emailbenachrichtung zusenden lassen, die Dich über die ausführung des Cronjobs informiert und alle Ausgaben des Perl-Scrips enthält:

all-inkl cron050email

Nun speicherst Du Deine Einstellungen:

all-inkl cron050speichern

Prüft bitte regelmäßig, ob die Backups auch vollständig und im Ernstfall nutzbar sind!!!

Nichts ist schlimmer als sich in falscher Sicherheit zu wiegen!

MySQL-Datenbankbackup per Email zusenden lassen

Falls man sich die Datenbank per Email zusenden lassen will, so läßt sich dies in der “Konfiguration” unter “Email” einrichten:

mysqld 22email

Hier gibt man an alle nötigen Daten ein. Bei mir funktionierte die Einstellung “SMTP” unter “Mailprogramm”. Sendmail klappte nicht, was aber auch an einer fehlerhaften Pfadangabe liegen könnte (Nachtrag: holger meldete in den Kommentaren, dass bei ihm Sendmail mit folgender Pfadangabe funktioniert: “/usr/sbin/sendmail”):

mysqld 23email

Wer sich häufiger Backups erstellen lässt, sollte eventuell unter “Konfiguration” > “automatisches Löschen” dafür sorgen, dass nicht zu viele Backups auf dem Server liegen bleiben. Dann auch wenn das Backup per Email versandt wird, so werden die Backupdateien vorher im Ordner “/work/backup” erstellt.

:) … so, jetzt erhalte ich regelmäßig automatisch die Backups meiner wichtigsten Datenbanken per Email zugesandt … und kann ruhiger schlafen ;) !!!

Allerdings klappt bei mir der Emailversand nicht mit einer Datenbank über 10 MB!

Falls Ihr von MySQLDumper genauso begeistert seid wie ich, denkt an eine kleine Spende für die Entwickler, die eine Menge Zeit, Energie und Nerven in die Entwicklung des Programms und den Support stecken: klick!

Für Interessierte noch eine kurze Beschreibung meines bei der Einrichtung des automatisierten Backups aufgetretenen Problems:

Kurze Erläuterung des bei mir aufgetretenen Problems

Da ich keine besonderen Informationen zur Nutzung von Perl bei all-inkl gefunden hatte, nahm ich an, dass die Scripte überall laufen. Ich erhielt beim Testen der Scripte allerdings immer die Meldung “You don’t have permission to access /xxxxx/msd_cron/perltest.pl on this server.”. Diese Meldung kann durch falsch gesetzte Rechte (CHMOD) entstehen. Nachdem ich diese Fehlerquelle ausgeschlossen hatte, suchte ich nach anderen Fehlerquellen. Da laut Support Forum diese Meldung auch durch einen vorzeitigen Abbruch des Perl Scripts erscheinen kann, wenn der Hoster ein zu knappes Zeitlimit für Perlscripte gesetzt hat und dies in Zusammenhang mit all-inkl zumindest in einem Foreneintrag gemeldet wurde.

Allerdings machten mich zwei Dinge stutzig: Erstens, dass die Fehlermeldung mit dem fehlenden Zugriffsrechten immer sofort erschien und nicht erst nach einer oder mehreren Sekunden und zweitens, dass ich keine Logdateien (“mysqldump_perl.log.gz” und “mysqldump_perl.complete.log.gz”) für das Perlscript im Unterordner “/work/log” finden konnte.

Nach einigem Googeln und Recherchieren kam ich dann auf die Idee doch einen eigenen “cgi-bin” Ordner für die Perl Scripte anzulegen und siehe da, es funktionierte auf einmal :) !

{ 63 Kommentare… lies sie unten oder schreib selbst einen }

1 Jochen Mai 30, 2007 um 19:31

schöner Beitrag !

Mit allinkl hatte ich bis heute ebenfalls nur gute Erfahrungen.

2 Pierre Mai 31, 2007 um 21:55

Alles Top erklärt, nur ich bekomme es trotzdem
nicht zum laufen grrrr

3 Nils Schulte am Hülse Juni 1, 2007 um 16:43

Hallo Pierre, woran genau hapert es denn bei Dir bzw. bis zu welcher Stelle klappt es?

4 Pierre Juni 1, 2007 um 17:31

Hi
Perl Test funktioniert
Aber ich bekomme immer folgende Fehlermeldung

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@diehaustierfreunde.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Ich habe in meine cronjob.pl folgende eintrag gemacht:
Eintrag in crondump.pl für absolute_path_of_configdir:
/www/htdocs/w0075a86/msd1.23/work/config/

Wenn ich selber eine Ordner cgi-bin erstelle
geht Perl überhaupt nicht

5 Nils Schulte am Hülse Juni 1, 2007 um 17:46

1. Was genau hast Du gemacht bevor der Fehler auftritt und wie wird dieser dann angezeigt?

2. Wenn es um das Haustierforum geht, vermute ich mal, dass die Datenbank schon etwas umfangreicher ist und Du so Probleme mit dem Zeitlimit für Perl-Scripte bei all-inkl bekommen könntest.

Erstell Die doch einfach mal eine kleine Testdatenbank und probiere es mit dieser aus. Wenn Du es so auch nicht schaffst, weißt Du zumindest, dass es nicht an der Datenbankgröße liegt.

3. Wenn ich es richtig gesehen habe betreibst Du ein WBB Board. Nach diesem Thread scheint es da ggf. einige Besonderheiten zu geben.

6 Nils Schulte am Hülse Juni 1, 2007 um 19:52

Hmmm, ich hatte grade einige Probleme mit dem Blog. Falls jemand etwas kommentieren wollte oder kommentiert hatte, müsste der Kommentar leider neu eingegeben werden.

7 Jochen Juni 1, 2007 um 20:02

Sowohl bei All-inkl. als auch beim MySqlDumper forum war der Support excellent – vielleicht ist eine Email an allinkl. einen Versuch wert.

Viel Erfolg

8 Pierre Juni 2, 2007 um 04:20

Also ich habe ein Testdatenbank erstellt
und habe dort das gleiche Problem

Vielleicht sollte ich all.ink. com mail eine e-mail schreiben

9 Nils Schulte am Hülse Juni 2, 2007 um 08:37

Ja, würde ich auch als nächsten Schritt machen. Hast Du Dich im Dumperforum mal durch die Suchergebnisse für “Internal Server Error” gearbeitet. Da scheint es noch einige weitere Fehlerquellen zu geben: Verzeichnisschutz, fehlender ASCII-Mode beim FTP, etc..

PS 1: Mir ist immer noch unklar in welchem Fall/Fällen Du genau die Fehlermeldung erhälst. Beim Druck auf den Button “Perlscript ausführen” oder nur wenn Du per Link das Script aufrufst oder in beiden oder anderen Fällen. Das PHP-Backup funktioniert dagegen problemlos?

PS 2: Ich habe die Anleitung noch um eine detailliertere Vorgehensweise für die Einrichtung von Cronjobs bei all-inkl ergänzt.

10 Pierre Juni 2, 2007 um 11:07

Ich bekomme denn Fehler nur wenn ich das Script ausführen will.
Test Perl, Test Perl-Modul funktionieren

11 Pierre Juni 2, 2007 um 12:21

Ich habe all.inkl.com ne e-mail geschreiben, 10 min später lief es. War wohl mein fehler, sorry

Dank an alle für die mühe

gruss
pierre

12 Nils Schulte am Hülse Juni 2, 2007 um 15:17

Na dann ist doch gut :) !

13 holmer Juni 19, 2007 um 09:06

hallo nils,
danke für die anleitung. funktioniert prima!

bei mir läuft die benachrichtigung per mail übrigens auch mit sendmail. pfad hierfür:

“/usr/sbin/sendmail”

ahoi holmer

14 Nils Schulte am Hülse Juni 22, 2007 um 20:54

Danke für die Info. Das werde ich gleich in die Anleitung mit einarbeiten :) !

15 Michael August 28, 2007 um 10:30

Hallo,

erstmal danke für die Anleitung. Stand vor den selben Grundvoraussetzungen (all-inkl und mysqldumper). Hab meiner Meinung nach auch alles so gemacht wie beschrieben.

Test Perl, Test Perl-Modul funktionieren bei mir auch aber das Cron-Script steuert einen Download an. Cronjob von all-inkl aus führt auch nicht zum gewünschtem Back Up.

Vielen Dank für eine Antwort

Michael

16 Nils Schulte am Hülse August 28, 2007 um 11:24

Hallo Michael,

hmmm, ist ja schon 1/4 Jahr her seit ich das gemacht habe und seitdem habe ich nix mehr machen müssen … erwarte also keine Expertenantwort :oops:

Wenn das Betätigen des Buttons “Perl-Cronscript ausführen” einen Downloadvorgang auslöst, bedeutet das, das das Script vom Server nicht als Perl-Script gewertet wird, sondern als x-beliebige Datei und daher wird bei Anforderung dieser Datei ein Download ausgelöst.

Ich hatte das Anfangs auch, als ich noch dachte es wäre gleichgültig wo man bei all-inkl seine Perl-Scripte abspeichert (diese Info habe ich wohl fälschlicherweise irgendwo im Internet aufgeschnappt und geglaubt). Leider hatte ich damals dazu keine wirklichen Infos von Seiten all-inkl’s gefunden. Es klappte aber plötzlich als ich versuchsweise einen Ordner mit der Bezeichnung “cgi-bin” im Hauptverzeichnis erstellt habe und das Perl-Script dort abgespeichert habe.

Meine Frage also an Dich: Hast Du Dein Script in einem Ordner namens “cgi-bin” (ggf. auch im Hauptverzeichnis der Domain) abgespeichert?

17 Michael August 28, 2007 um 12:05

Hallo Nils,

lieber “keine Expertenantwort” als gar keine.
Zu deiner Frage:

ich hatte einen Unterordner namens cgi-bin in den originalen mysqldumper Ordner gelegt. Damit kam das oben beschriebene Problem. Auch das Verschieben in den vorhandenen cgi-bin Ordner von all-inkl (im Hauptverzeichnis) ändert an dem Download Pop up nichts.

Muss ich da noch was bei all-inkl freischalten lassen?

Gruß

Michael

18 Nils Schulte am Hülse August 28, 2007 um 12:44

Da bin ich leider mit meinem Latein am Ende.

Ich selbst habe nichts bei all-inkl freischalten lassen. Aber da meiner Erfahrung nach der Support sehr gut ist, würde ich dort ruhig mal anfragen. Falls das nicht hilft, würde ich mich an das MySQLDumper Forum wenden. Da gibt es sicher fachkundigere Helfer als mich.

Ich drück Dir die Daumen, dass es klappt und würde mich freuen, wenn Du mir die Lösung Deines Problems (ich glaub mal einfach daran, dass es eine gibt) als Nachricht hinterlässt.

PS.: Manchmal sind es ja schon Kleinigkeiten, die etwas verhindern. Ich würde es auch nochmal mit einer Neuanlage des cgi-bin Ordners im Hauptverzeichnis versuchen (also ohne Verschieben) und dort das Script reinkopieren. Dabei fällt mir ein: Hast Du beim Verschieben auch die Einstellungen im Dumper geändert (Pfad der Perlskripte)?
Außerdem würde ich versuchsweise es auch nochmal mit der Dateiendung .cgi statt .pl probieren (Einstellung dann auch in MySQLDumper ändern).

19 Michael August 28, 2007 um 12:54

Hatte alles ausprobiert .pl -> .cgi etc.

Ein Neuanlegen führte dann zum Erfolg.
Tja, die Wege von IT sind manchmal unergründlich ;-)

Trotzdem vielen Dank.

Ciao

Michael

20 Nils Schulte am Hülse August 28, 2007 um 13:11

Gern geschehen … ich weiß aus eigener Erfahrung wie nervig solche “kleinen” Probleme sein können.

Wenn es also jetzt funktioniert, dann ist das doch wunderbar (wenn auch schwer nachvollziehbar :???: )!

21 jo@chim September 2, 2007 um 09:44

Danke für die hervorragende Anleitung. Den bisher schnellen, freundlichen und immer kompetenten Service von all-inkl.com kann ich bestätigen. Wirklich eine Erholung, wenn man sich 1 Jahr lang 1blu gefühlt hat…

22 werner September 4, 2007 um 21:55

Hallo miteinander,

das ist ja eine prächtige Beschreibung für den Problemlösungsweg.
Aber mal eine Verständnisfrage:
wenn man wie beschrieben unter dem mysqldumper das Verzeichnis /cgi-bin/ mit den *.pl-Dateien anlegt, ist dann der Pfad für den Aufruf im externen Cronjob wie oben im Beispiel
“http://www.meinedomain.de/cgi-bin/crondump.pl?config= mysqldumper.conf.php”
richtig?

Müsste der nicht so aussehen: … ??

“http://www.meinedomain.de/mysqldumper/cgi-bin/crondump.pl?config= mysqldumper.conf.php”

Oder mach ich hier einen Gedankenfehler ?

Gruß
Werner

23 Egon Cojenils September 5, 2007 um 21:25

Hallo zusammen,

erst einmal ein dickes Danke für die perfekte Beschreibung!

Bei mir hat das erwähnte Verzeichnis /cgi-bin/ unter dem mysqldumper-Verzeichnis nicht funktioniert. Erst als ich die drei Dateien in das (bereits vorhandene) /cgi-bin/ unter dem Hauptverzeichnis kopiert habe (sowie es ja im restlichen Text eigentlich auch dargestellt wird) hat alles wunderbar geklappt.

LG,
Egon

24 Smartsoul September 8, 2007 um 13:48

Hi!

Versuche gerade das hinzubekommen bzgl. Cronjobs.

Stoße jetzt auf zwei Varianten von Problemen.

1. Wenn ich den cgi-bin Ordner im mysql_dumper Verzeichnis anspreche, bekomme ich eine Fehlermeldung:
You don’t have permission to access /mysql_dumper/cgi-bin/simpletest.pl on this server

2. Wenn ich den cgi-bin Ordner im root Verzeichnis verwende, geht bei mir das Download-Fenster auf.

Schade es war alles so super erklärt und ich dachte, es läuft alles easy.

Hat noch jemand einen Tipp?

@ Michael
Ein Neuanlegen von was und wo hat bei dir zum Erfolg geführt?

Gruß

Smartsoul

25 Smartsoul September 8, 2007 um 15:14

Okay hat sich erledigt!

Meine Files und Ordner waren nicht genau auf 755-Rechte eingestellt.

Nobody is perfect und ich schon lange nicht! ;-)

Gruß

Smartsoul

26 Smartsoul September 8, 2007 um 15:37

Was ich noch vergaß, war natürlich das Lob für den tollen Job!

Wirklich toll dokumentiert. Auch die Videos waren sehr hilfrieich.

THX!

27 Nils Schulte am Hülse September 10, 2007 um 12:41

Bin grade im Urlaub mit nur begrenztem Internetzugang, daher meine verzögerte Antwort.

@Werner

Du hast im Grunde Recht. Allerdings gehe ich mittlerweile davon aus, dass Perlscripte bei all-inkl nur in einem eigens dafür angelegten “cgi-bin” Ordner im Hauptverzeichnis der jeweiligen Domain ausgeführt werden. Ich werde bei Gelegenheit die Anleitung nochmal überprüfen und die Info einarbeiten … aber erst nach meinem Urlaub ;) !

@Smartsoul

Danke für die Blumen! :)

Allerdings weiß ich von keinen Videos :???: … falls Du die Screencasts auf der MySQLDumperseite meinst, dann sind die nicht von mir.

28 Smartsoul September 10, 2007 um 13:17

Ja, die meinte ich wohl! Musst dir den Strauß ja nicht ins Fenster stellen.

Zu all-inkl.com möchte ich noch erwähnen, dass die Pfadangabe für sendmail, zumindest in meinem Account, /usr/sbin/sendmail -t (man beachte den Parameter) heißen muss, damit der E-Mail Versand auch unter Perl funktioniert.

Und …
Bei mir hat es auch nur mit den Perlscripts im Standard cgi-bin Verzeichnis funktioniert.

Gruß und noch einen schönen Urlaub :-)

Smartsoul

29 xKai666x September 18, 2007 um 12:08

Super, funktioniert einwandfrei nach deiner Anleitung unter all-inkl.com!!!

Danke!

Gruss, Kai

30 Astra Oktober 10, 2007 um 08:42

Super Anleitung.

Musste nur noch bei unserem all-inkl.-Modell das DBI::mysql Perl-Modul nachladen lassen. Aber bei all-inkl. geht sowas ja immer fix.
Nun läuft alles soweit…
Bis auf…jetzt kommt’s…Timeout-Probleme bei einer bestimmten Tabelle, da unsere DB 37MB (knapp 9MB gzip) groß ist. Und das häuptsächlich auf dieser einen Tabelle (Ihr ahnt schon: die Beiträge eines Forums).

Jetzt muss ich schon wieder all-inkl. anhauen, ob sie das Perl-Timeout nicht evtl. heraufsetzen.
Frage mich nur bis zu welcher Größe das dann gut geht.

Trotzdem wollte ich kurz mein Lob und Dank ausprechen.

Grüße :)

31 Tim Oktober 23, 2007 um 16:28

Hi, ich nutze seit Jahren All ink, so dass ich davon aus ging, dass die meisten Hoster wie all inkl sind, aber 1blu konnte mich (wollte mal eine andere ip bzgl. seo) überzeugen, dass all ink leider einer der weniger Klasse-Hoster ist.

Wieso ich kommentiere?
1. Ich habe Deine tolle Anleitung genossen und habe Sie auch so laufen gehabt, aber das TIMEPUT-Problem von All ink wird alle treffen mit einer großen Datenbank! Oder haben die was geändert?
2. Die Lösung von All inkl. ist auch ok (habe das backup zwei Mal gebraucht und konnte es mit phpmyadmin problemlos einspielen):
http://all-inkl.com/anleitungen/datenbank/phpscripte/db_backup_anlegen.html?PHPSESSID=2ebd53888eb081b3121c35a5c6e3a103
http://all-inkl.com/anleitungen/datenbank/phpscripte/db_backup_anlegen_email.html?PHPSESSID=2ebd53888eb081b3121c35a5c6e3a103

Gruß Tim

32 Tim W. Oktober 26, 2007 um 10:30

danke für diese wirklich sehr gute anleitung. auch ich hatte das timeout problem bzgl. der perl-skripte bei all-inkl. hat man jedoch einen managed server, ist es kein problem den timeout von standardmäßigen 7 sekunden deutlich erhöhen zu lassen. bei mir sind es nun 40 sekunden und das ganze läuft mit einer >60mb großen datendank ohne probleme.

33 Umzug mit der MySQL Datenbank: Die Umlautproblematik « November 6, 2007 um 18:32

[...] Mittlerweile habe zur neuen Version des MySQLdumper eine Anleitung verfasst: “MySQL-Datenbanken automatisch sichern mit MySQLDumper und all-inkl als Hoster“ Gelesen: 525 · heute: 5 · zuletzt: 6. November 2007 Veröffentlicht [...]

34 Jörn November 5, 2007 um 21:22

Hallo,

Danke für Deine tolle Hilfe, endlich läuft es.

Kann das sein, dass die Sicherung per CronJob wesentlich kleiner ist als eine “manuell” erstellte? Sonst haben wir rund 54 MB bei einer Datensicherung gehabt, nun sind es knapp 4 MB, aber die Tabellenanzahl stimmt überein und die Einträge weichen logischerweise ein wenig ab.

Vielen herzlichen Dank!!!!!

Jörn

35 Nils Schulte am Hülse November 6, 2007 um 11:51

Hallo Jörn,

also das klingt mir leider sehr danach, als wenn bei Dir die zeitliche Perl-Scriptbegrenzung von all-inkl zugeschlagen hat. Die Differenz von 50 MB ist einfach zu groß. Die Tabellen werden meine ich als erstes erzeugt, daher sind auch alle da. Es fehlen Dir sicher eine Menge Einträge. Genauere Aussagen erhälst Du eher im MySQLDumper Support Forum.

Ich habe die Emailbenachrichtigung aktiviert und erhalte so immer eine Art Log-Datei zusätzlich per Email zugeschickt. Da kann ich einigermaßen nachverfolgen, ob mit dem Script alles geklappt hat.

Ggf. bei all-inkl anfragen, ob sie das Timeout für Perlscripte hochsetzen können.

36 undkonsorten » Backups ohne Aufwand: Files und Datenba November 6, 2007 um 18:15

[...] Beschreibung, wie Mysqldumper automatisiert wird, ist Voraussetzung für die nächsten Schritte. Es wird davon [...]

37 Kaiser_Augustus April 24, 2008 um 20:45

Ich habe genau das Timeoutproblem bei allinkl. wie du es hattest. Ein Anruf beim Support war jedoch recht ernüchternd: Der Bitte des Anhebens des Timeouts wird nur bei eigenen bzw. angemieteten Servern nachgekommen. Nicht jedoch bei Shareed-Servern wie in meinem Fall. Ich habe den Privat-Tarif.
Ganz schöner Mist. Somit kann ich mit dem MySQLDumper genau so wenig anfangen wie mit der phpBB3 eigenen Backup-funktion, nämlich nichts. Schade!

38 Lösung Mai 27, 2008 um 23:26
39 Nils Mai 27, 2008 um 23:51

Hast du das Script auch schon mit größeren Datenbanken in Verbindung mit einem Hosting Paket (kein Server) getestet?

PS: Ich weiß nicht was Du mit “gemurkse” meinst, da das Problem nicht durch das Script des Dumpers, sondern aufgrund des von all-inkl gesetzten Timeouts für Perl entsteht!?

40 StarFire Juli 5, 2008 um 23:21

Tolle Anleitung – vielen herzlichen Dank dafür!

Leider ist meine Forumsdatenbank inzwischen über 90 MB (*.gz) und da haut mir der Perl-Timeout dazwischen. Na ja, dann mache ich halt weiter per Hand …

lg
SF

41 Nils Juli 6, 2008 um 00:05

Ja der Timeout bei all-inkl nervt und die lassen da anscheinend auch nicht mit sich handeln. Ich habe das Glück, dass eines der Foren bei denen ich beteiligt bin auf einem Server mit einer Plesk-Lizenz läuft bei der ich den gesamten Account automatisch per FTP sichern lassen kann.

Der Clou: ich sicher per FTP in meinem all-inkl Webspace :D !

42 Mirko August 6, 2008 um 01:40

Hi,

vielen Dank für die ausführlich Beschreibung.
Bei mir hats auch erst geklappt, als ich den schon vorhandenen cgi-bin ordner für die *.pl verwendet habe.

danke und Gruß

43 Uwe August 11, 2008 um 15:47

Hi,

Eine schöne Anleitung.

Ich habe leider ebenfalls bei einer db mit dem Timeout zu kämpfen.

Aber einen Hinweis für das im Root stehende /cgi-bin/ kann ich noch beisteuern.

Schreibt einfach in eine .htaccess, die im root steht
Options +Multiviews ExecCgi followsymlinks
und ihr könnt jedes Verzeichnis für die Dateien benutzen.

Falls jemand irgendeinen Hinweis zum Timeout-Problem findet, wäre es Klasse, diesen hier mit zu posten.

Ciao
Uwe

44 Achim September 11, 2008 um 23:28

Hallo,
sehr sehr gut, ich bin begeistert, habe dein Tutorial auf auf meiner Seite verlinkt, denn danach habe ich schon lange gesucht. Hoffe das ist OK für dich, kann ja nicht schaden und kommt allen zu gute die dort sind. Nochmals, vielen Dank, klappt Super.
LG Achim

45 rolfino September 21, 2008 um 11:01

Ich habe den selben Fehler, wie weiter oben von Smartsoul beschrieben.

Wenn ich den cgi-bin Ordner im root Verzeichnis verwende, geht bei mir das Download-Fenster auf.

Habe ich irgendwelche Rechte falsch gesetzt?

Für Hilfe wäre ich dankbar. Ansonsten, tolle Anleitung.

46 Nils September 21, 2008 um 11:14

Hi rolfino,

das bedeutet, dass die Datei vom Server nicht als Perlscript erkannt wird, sondern als “normales” File auf dem Server. Ich zitiere mich nochmal selbst:


(Nachtrag: ich will an dieser Stelle auf einige hilfreiche Kommentare weiter unten hinweisen: einerseits scheint es so zu sein, dass der “cgi-bin” Ordner grundsätzlich neu im Hauptverzeichnis der Domain angelegt werden muss. Ein Anlegen in Unterverzeichnissen oder ein Kopieren des Ordners aus einem anderen Verzeichnis in das Hauptverzeichnis scheinen die Ausführung von Perlscript nicht zu ermöglichen. Darüber hinaus gibt es wohl auch Hostingpakete bei denen all-inkl Perl erst aktivieren muss. Genaueres findet ihr in den Kommentaren weiter unten oder indem ihr den all-inkl Support befragt.)

In diesen Ordner kopierst Du das Skript “crondump.pl” sowie die beiden Testskripte “perltest.pl” und “simpletest.pl” per Ascii-Modus (sollte jeder einigermaßen ausgereifte FTP-Client schaffen).

Änder die Dateirechte des Ordners und aller darin befindlichen Skripte per chmod auf 755.

Das hast du alles beachtet?

Ansonsten kannst du mit diesem Problem auch an den allinkl Support wenden, denn es geht ja erstmal darum Perl ans Laufen zu kriegen und nicht unbedingt das Dumperscript selbst.

Auf jeden Fall wäre es klasse, wenn Du Dein Ergebnis hier posten würdest.

Viel Erfolg wünscht Dir

Nils

47 rolfino September 26, 2008 um 19:44

Hallo Nils,

Sorry für die späte Antwort, aber ich war die Woche beruflich unterwegs.

Ich habe es noch einmal komplett neu gemacht, und jetzt funktioniert es (fast).

Wenn ich den Cronjob über den Browser aufrufe, macht er ein komplettes Backup (ca. 12 MB) und schickt es an die angegebene Mail-Adresse.

Wird der Cronjob jedoch Zeitgesteuert aufgerufen, bricht er in unregelmäßigen Abständen ab und versendet dann logischer weise auch keine Mail.

Der Abbruch findet mal bei 2,7 MB oder auch mal bei 7 MB u.s.w. statt. Also immer nach einer unregelmäßigen Zeit.

Gibt es da noch einen Trick oder so, den ich anwenden könnte, um auch das noch in den Griff zu bekommen.

Gruß

rolfino

48 Nils September 26, 2008 um 20:23

Tut mir leid, aber damit habe ich keine Erfahrungen. Versuch es doch mal im MySQLdumper Forum, ob die Dir weiterhelfen können.

Ich könnte mir nur vorstellen, dass es ggf. doch mit dem Timeout seitens allinkl zu tun hat – auch wenn unterschiedlich viel verarbeitet wird. Aber das ist nur eine Vermutung.

49 rolfino September 26, 2008 um 20:51

Besten Dank, ich werde es dort mal probieren.

Gruß

rolfino

50 Michael Mai 20, 2009 um 15:30

Danke für die feine Anleitung!

Der Pfad für sendmail kann scheinbar auch noch variieren, bei mir war es /usr/sbin/sendmail -t -i

Das lässt sich aber mittels

< ?PHP
phpinfo ();
?>

leicht rausfinden, einfach eine Datei mit dem Inhalt erstellen und als phpinfo.php speichern. Danach hochladen und im Browser aufrufen und nach “sendmail_path” suchen.

Vielleicht noch als Hinweis, falls es noch ein paar geplagte gibt, bei denen niemals was im ersten Versuch klappt….

Schreib einen Kommentar

Vorheriger Artikel:

Nächster Artikel: