Seite 1 von 3
DB-Backup per Cronjob?
Verfasst: 26.06.2008 00:20
von uwe.ha
Hallo,
das Forum hat ja eine integrierte backup-Funktion.
Kann ich die auch per cronjob aufrufen?
Wenn ja, wie wäre der Befehl?
Oder gibt es eine andere Möglichkeit dieses Backup autom. per Cronjob anzustossen?
(Auf meinem Server läuft noch phpMyAdmin)
Verfasst: 26.06.2008 07:04
von DreamPromise
Moin moin
ich lasse meine Datenbanken seit Jahren mit folgendem Script per CJ sichern:
Code: Alles auswählen
<?
exec("mysqldump -u ########## -p#################### --add-drop-table ########## >dump" . date('dmY') . ".sql");
exec("gzip dump" . date('dmY') . ".sql");
echo "Die Datenbank ist gesichert ...";
?>
DP
Verfasst: 26.06.2008 08:12
von Dr.Death
Entweder wie oben beschrieben oder mit dem
www.mysqldumper.de
Der mysqldumper bringt ein PHP und Pearl Script mit und lässt sich einfach per WebInterface einrichten.
Verfasst: 26.06.2008 10:20
von uwe.ha
Moin, Danke erstmal für eure Vorschläge!
Mein Hoster (all-inkl) sagte mir aber gerade, dass das "Problem" bei mySqlDumper wäre, dass das Backup per cronejob als Perlscript ausgeführt wird, und damit (im Gegensatz zum manuellen Anstossen des Backup per php mit Umgehung des timeout-Problems) auch wieder timeout auftreten kann.
Dann hat mir der Mitarbeiter deren "eigenes" php-Script empfohlen, welches deinem, DreamPromise, ähnlich ist. Aber auch da kann es zu timeout kommen. Wobei all-inkl dann die timeout-Zeit hochsetzen kann.
(Noch hat meine DB "nur" 170 MB, da sollte das timeout noch nicht passieren, weder mit php noch mit perl. Es wäre aber schön eine Lösung zu finden, die auch bei größerer DB noch mit crone und ohne timeout funktioniert)
... oder kann mySqlDumper per Cronejob auch als php-Script (mit der Umgehung des timeout-Problems) aktiv werden?
Un nu? ... da kann ich - zum manuellen Backup und solange noch kein timeout kommt - ja auch weiterhin das phpbb3-eigene Backup nutzen.
Was soll ich machen?
Vorteile von mySqlDumper wie Umgehung des timeout-Problems und Sicherung an einem anderen Ort (per ftp) sind ja schon klasse, nur wenn das nicht per crone geht (zumindest das timeout-lose php-Script) bringt es ja nicht sooo viel.
Verfasst: 26.06.2008 11:27
von DreamPromise
Moin moin
hast du denn mal mein Script benutzt?
Ich bin auch bei all-inkl. und hab solche Probleme nicht.
DP
Verfasst: 26.06.2008 11:46
von bantu
Mein Hoster (all-inkl) sagte mir aber gerade, dass das "Problem" bei mySqlDumper wäre, dass das Backup per cronejob als Perlscript ausgeführt wird, und damit (im Gegensatz zum manuellen Anstossen des Backup per php mit Umgehung des timeout-Problems) auch wieder timeout auftreten kann.
Das ist in der Tat korrekt.
Als ich den Dumper zu letzt verwendet habe, machte das Perlskript auch keinen UTF8-Export sondern nur latin1. In einem Forum habe ich damit einige UTF8-Sonderzeichen verloren.
Eine Möglichkeit wäre es eventuell per Cron wget aufzurufen und damit ein PHP-Skript auf dem Server zu starten. wget müsste die Weiterleitungen vom Dumper nämlich mitmachen und das Timeout umgehen.
DreamPromise, exec() wird von den meisten Providern aus Sicherheitsgründen deaktiviert. Über die Console (bzw. exec) ist sicher die beste Methode (wenn es denn geht).
Verfasst: 26.06.2008 12:04
von DreamPromise
Moin moin
@bantu
Da er ja auch bei dem gleichen Hoster ist wie ich sollte das ja problemlos funktionieren.
DP
Verfasst: 26.06.2008 12:07
von bantu
Hmm.
Vom Server dd14812: Abgeschaltete Funktionen: exec,system,passthru,shell_exec,popen,escapeshellcmd,proc_open,proc_nice
Verfasst: 26.06.2008 12:09
von DreamPromise
Moin moin
bei mir nicht.
Es läuft ja ..zum Glück.
DP
Verfasst: 26.06.2008 12:19
von bantu
Wundert mich. Aber ist eigentlich schon klar, dass nicht jeder Server das gleiche Setup hat.
Unter Umständen geht es dann aber auf Uwe's Server nicht. Einfach mal ausprobieren.