PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [vB3] automatische Datenbanksicherung über "Zeitgesteuerte Aufgaben"



Onkel_Tom
07.05.2004, 02:42
Hallo zusammen,
Ich habe den originalen Hack von Brad.loo übersetzt und etwas verfeinert.
Den original Hack findet Ihr unter http://www.vbulletin.org/forum/showthread.php?t=62149

Der Hack macht eine automatische vbcron gesteuerte Datensicherung Eurer Datenbank in einem definierten Verzeichnis. Der Dateiname ist im Script selbst definierbar und auch ob Ihr eine unkomprimierte .sql Datei haben wollt oder eine gepackte .tar.gz Datei
Den Log der Datenbanksicherung könnt Ihr im AdminCP unter Log der Aufgaben mitverfolgen.

Hinweise:
- Der Hack überschreibt keine vorhanden Sicherungen sofern ein unikater Dateiname verwendet wird !
- Der Hack löscht keine vorhanden Sicherungen nach irgendwelcher Anzahl von Tagen.
- Für die Rücksicherung einer gesicherten Datenbank könnt Ihr das Script aus diesem Beitrag (http://www.vbulletin-germany.com/forum/showpost.php?p=66118&postcount=6) verwenden.

Ist wirklich ein tolles AddOn für alle die nicht jeden Tag Zeit haben eine Datenbanksicherung von Hand durchzuführen. Über ein FTP Programm kann man dann von Zeit zu Zeit die älteren Datenbanksicherungen einfach löschen.

Die deutsche Version gibt's hier:

daFish
07.05.2004, 10:11
Klasse Script.

Ist es möglich den Dump direkt als .tar.gz zu speichern ohne erst die .sql-Datei zu erstellen?

Onkel_Tom
07.05.2004, 11:54
Ich wüsste nicht wie da Du erstmal die sql Datei haben musst um den tar drüberrennen zu lassen ;)
Du brauchst halt Speicherplatz auf dem Server damit das funktioniert.

daFish
07.05.2004, 13:26
Ich wüsste nicht wie da Du erstmal die sql Datei haben musst um den tar drüberrennen zu lassen ;)
Du brauchst halt Speicherplatz auf dem Server damit das funktioniert.
Der Speicherplatz ist kein Problem. ;)
Ich frage nur deshalb:

mysqldump --opt -hHOST -uUSER -pPASS DBNAME | gzip > bla.sql.gz

nehme, funktioniert das doch auch. Geht das dann also nicht mit Tar?

Onkel_Tom
07.05.2004, 14:58
Der Speicherplatz ist kein Problem. ;)
Ich frage nur deshalb:

mysqldump --opt -hHOST -uUSER -pPASS DBNAME | gzip > bla.sql.gz

nehme, funktioniert das doch auch. Geht das dann also nicht mit Tar?

Müsste ich mal probieren ob das mit tar genauso geht.
Bin kein "Tunix" Experte :D

Onkel_Tom
07.05.2004, 15:03
Sodele, jetzt kommt auch noch das passende Rücksicherungsscript für den Hack.
Das Script einfach in Euer Datenbanksicherung-Verzeichnis kopieren, den Dateinamen der gewünschten Sicherung im Script eintragen und mit dem Browser starten.

ACHTUNG: Das Script überschreibt die aktuelle Datenbank mit der Sicherung. Das ist kein Witz und die Daten sind futsch wenn Ihr nicht wisst was Ihr da macht!

Sicherheitshinweis: Kopiert das Script nur auf den Server wenn Ihr aktuell eine Datenbankrücksicherung machen müsst.
Nach der Rücksicherung bitte das Script wieder vom Server löschen da es zu gefährlich ist das Script dort zu belassen.

cmssys
07.05.2004, 19:04
Danke auch

Vor allem wenn man kein Shell zugang mehr hat
ist sowas sehr nützlich.

Super Sache
Werde ich ausprobieren

Onkel_Tom
07.05.2004, 19:24
Ein Problem kann sich allerdings mit den PHP Speicherbeschränkungen ergeben. Wenn man im vB3 unter "vBulletin-Einstellungen", "Administrator-Kontrollzentrum" die Statistikanzeige aktiviert hat sieht man auf der Startseite des AdminCP die Werte die der Server verwendet.

Sollte da mal eine Datenbank größer als die erlaubte Speichergröße sein, PHPs maximale Uploadgröße für einen Restore und PHPs Speicherlimit für einen Backup, werden die Scripte in der Ausführung abgebrochen und man muss mit dem Shell Zugang arbeiten.

Ne0
08.05.2004, 00:10
Bei mir werden die TAR Archive nicht größer als 3,3 MB und das bei einer 170MB MySQL DB.
Gibts kine Möglichkeit außer SSH ? :(

Onkel_Tom
08.05.2004, 00:49
Bei mir werden die TAR Archive nicht größer als 3,3 MB und das bei einer 170MB MySQL DB.
Gibts kine Möglichkeit außer SSH ? :(

Hm, das liegt wohl an Deinem Hoster. Bei welchen bist Du den ? eigener Server oder shared Webspace ?
Wäre mal interessant diese Daten der verschiedenen Hoster zusammen zu tragen.

cmssys
08.05.2004, 13:21
Hallo

Also irgend wie geht das bei mir auch nicht
Ohne Search index 22,26MB
Mit Search Index 43,21

Datenbbank grosse ist 220MB Komplett.
Allerdings mir ist auch was aufgefallen unter in der IE Leiste 38% brichts ab
Kommt erfolgsmeldung.

Das hat mit meiner Provider zutun nehme ich an timeout für PHP Scripte zu niedrig.:(

Na ja das ist immer so ne sache wenn man kein shell zugriff hat.
Unter Schll geht das so einfach und schnell.

Gandalf2003
11.05.2004, 12:55
ergo müsste folgende einstellung gelten für 23:59 Uhr?

Stunden: 23
Minuten: 59

?

Onkel_Tom
11.05.2004, 13:23
So sollte es sein ;)
Je nach Provider würde ich um diese Uhrzeit aber keine Sicherung machen da sehr viele Provider um die selbe Uhrzeit eine Datenbanksicherung machen falls Du einen Webspacepaket oder einen Managed Server hast.

Gandalf2003
18.05.2004, 08:55
@cmssys

wieso ein script für das backup kannste doch benutzen, nur bezweifle ich es, dass es dann per cron läuft!

cmssys
18.05.2004, 16:40
CharlieBrown
Ich mache zu Zeit Backup über AdminCp,
Es ist echt zum heulen,Ich werde in mein Leben nie wieder Sparen bei der Serverauswahl :(

per cron läuft das sowieso nicht,Ich habe ein Webspace wo fast alles begrenzt ist Timeout´s usw..

Dai
29.08.2004, 10:45
Fehlt hier nicht der Code zum Löschen der SQL-Datei?

unlink($DUMP_PATH. '/' . $file_date .'.sql');

Onkel_Tom
01.09.2004, 15:05
Fehlt hier nicht der Code zum Löschen der SQL-Datei?

unlink($DUMP_PATH. '/' . $file_date .'.sql');

Ähm, wieso ?
Wenn Du als Ausgabe die ungepackte Version wählst brauchst Du die .sql Datei und wenn Du die gepackte Version wählst steht in der tar Anweisung "--remove-files" was bedeutet das nach dem "taren" die originale .sql Datei gelöscht wird.

m-e-h.com
20.11.2004, 13:24
Hi,
erstmal:
Klasse Script, sehr sinvoll und nützlich.

Ich hab aber leider ein kleines "Problem" damit. Und zwar lasse ich den Cron einmal in der Woche (nachts) durchlaufen.
Klappt auch wunderbar, aber irgendwie erstellt der mir nicht einen Dump, sondern mehr als einen (bis zu 6 Stück!)

Ich hab aktuell folgende Files drin:
http://www.vbulletin-germany.com/forum/attachment.php?attachmentid=2703

So, warum macht der so einen "Müll"? Zumal das Error-Log faktisch leer ist...

Hier mal die Einstellungen für den Cron:
http://www.vbulletin-germany.com/forum/attachment.php?attachmentid=2704

thx!

cm

StGaensler
20.11.2004, 13:46
Was sagt das "Log der Aufgaben"? (/admincp/cronlog.php)

Kann das Script vollständig ausgeführt werden?
Was mich wundert: Der Dump ist immer unterschiedlich groß. tlw. um 10KB.

m-e-h.com
20.11.2004, 14:40
Das Log: siehe Anhang.

Das Script funzt problemlos, die Größe der Dumps stimmt auch in etwa. Wenn ich einen manuellen Dump mache (also über das vBulletin direkt), dann kommt das auf etwa die gleiche Größe.

Was mich auch irritiert ist, dass da immer unterschiedlich viele Dumps sind. Wenn der die z.B. immer 3x machen würde, dann wäre der Fehler ja fast klar ;)

Die Größenunterschiede kann u.U. daher kommen, dass in der Zwischenzeit was gepostet wurde, etc.?!

cm

StGaensler
20.11.2004, 16:01
Das Script funzt problemlos, die Größe der Dumps stimmt auch in etwa. Wenn ich einen manuellen Dump mache (also über das vBulletin direkt), dann kommt das auf etwa die gleiche Größe.
Macht er dort den Dump auch fertig, d.h. du bekommst einen kleinen Kasten mit Bestätigung und kannst dort auf weiter klicken?


Was mich auch irritiert ist, dass da immer unterschiedlich viele Dumps sind. Wenn der die z.B. immer 3x machen würde, dann wäre der Fehler ja fast klar ;)
Was mich darüber hinaus irritiert: In der Logdatei steht nur das Datum vom letzten Dump an diesem Tag drinnen. :confused:


Die Größenunterschiede kann u.U. daher kommen, dass in der Zwischenzeit was gepostet wurde, etc.?!
Das kann natürlich sein. Ich hatte eher darauf getippt, dass das Script nicht genug Zeit hat, vollständig ausgeführt zu werden, und dann einfach abgebrochen wird. Je höher der Serverload während des Dumps wäre, desto kleiner wäre dann der Dump.

Auf unserem Server können wir mit PHP kein vollständiges Datenbank-Dump machen, da das Script immer vom Server abgebrochen wird. (Ist aber auch ein Strato-Server...)

m-e-h.com
20.11.2004, 17:15
Macht er dort den Dump auch fertig, d.h. du bekommst einen kleinen Kasten mit Bestätigung und kannst dort auf weiter klicken?



vBulletin-Systemmitteilung

Datenbank Backup erfolgreich durchgeführt

[Zurück]

Größe:
136.370.483 (also ca. 130 MB)


Was mich darüber hinaus irritiert: In der Logdatei steht nur das Datum vom letzten Dump an diesem Tag drinnen.
Nö, der erstellt für jeden Dump ne extra Logdatei.


Je höher der Serverload während des Dumps wäre, desto kleiner wäre dann der Dump.
Naja, ich hab leider keine Realtime-Loadanziege, aber im Regelbetreib liegt die Last bei ca. 0,3, Spitzen sind bei 0,5. Wenn ich das Dump durchjage, dann geht der vllt. mal auf 0,8 hoch...


Auf unserem Server können wir mit PHP kein vollständiges Datenbank-Dump machen, da das Script immer vom Server abgebrochen wird. (Ist aber auch ein Strato-Server...)
Wenn das normale Dump durchläuft, dann sollte doch auch das Script laufen!
Ich kann aber auch mal bei all-inkl anfragen, wie's mit den Timeouts aussieht...

/edit
Also, folgende Timeouts:
PHP:
max_execution_time - 30
Apache:
Timeouts - Connection: 300 - Keep-Alive: 3


cm

StGaensler
20.11.2004, 23:36
vBulletin-Systemmitteilung

Datenbank Backup erfolgreich durchgeführt

[Zurück]Größe:
136.370.483 (also ca. 130 MB)

/edit
Also, folgende Timeouts:
PHP:
max_execution_time - 30
Apache:
Timeouts - Connection: 300 - Keep-Alive: 3
OK, dann sollte die Ausführungszeit der Scripte ausreichen.


Nö, der erstellt für jeden Dump ne extra Logdatei.
Ich meine nicht die *-error.txt, sondern den Eintrag im AdminCP-Cronlog. In deinem Screenshot (http://www.vbulletin-germany.com/forum/attachment.php?attachmentid=2705) sieht man nur einen Eintrag für den 18. - oder kommt da noch mehr?

m-e-h.com
21.11.2004, 15:12
Ja, da sind noch mehrere. Ich hab mal nen Screenshot vom kompletten Log angehangen.

cm

StGaensler
21.11.2004, 15:43
:(

Dann liegt der Fehler irgendwo bei vBulletin, denn deine Cronjob-Einstellungen stimmen ja.

m-e-h.com
21.11.2004, 15:46
:(

Dann liegt der Fehler irgendwo bei vBulletin, denn deine Cronjob-Einstellungen stimmen ja.

Meinst du echt?!

Du bist dir da sicher, dass ich nichts falsch gemacht haben kann?

cm

StGaensler
21.11.2004, 16:14
Meinst du echt?!

Du bist dir da sicher, dass ich nichts falsch gemacht haben kann?

cm
Vergleiche einfach mal deine Cronjob-Einstellungen mit denen der "Wöchentliche Themenübersicht" (siehe Anhang).

Bis auf den Wochentag und die Uhrzeit ist da ja kein Unterschied.

Du könntest nur noch probieren, in den Cron-Einstellungen bei der Beschreibung deines Jobs das ü in ü zu verändern (html-Schreibweise für ü). Aber daran sollte es wirklich nicht liegen :)

m-e-h.com
21.11.2004, 17:03
Naja, das ist doch recht seltsam.
Ich hab Mystics mal ne PM geschrieben, mal sehen, was er sagt.

cm

Filou
23.11.2004, 20:25
cool .. Nur leider funzt es bei mir nicht :(

Das log sagt mir folgendes:


115
Tägliche Datenbanksicherung
19:38, 23.11.2004
Datenbanksicherung gespeichert unter /srv/www/htdocs/web0/html/xxxxxxx/backup/SQL am 23.11.2004-19:38 Uhr (Dateiname 2004-11-23_Tuesday-19.38.tar.gz

Das error_log von apache spricht da schon mehr dazu:


/srv/www/htdocs/empty/mysqldump: Can't get CREATE TABLE for table `2>/srv/www/htdocs/web0/html/xxxxxxx/backup/SQL/2004-11-23_Tuesday-20.20-error.txt` (Incorrect table name '2>/srv/www/htdocs/web0/html/xxxxxxx/backup/SQL/2004-11-23_Tuesday-20.20-error.txt')
/srv/www/htdocs/empty/tar: 2004-11-23_Tuesday-20.20.sql: Cannot stat: No such file or directory
/srv/www/htdocs/empty/tar: 2004-11-23_Tuesday-20.20-error.txt: Cannot stat: No such file or directory
/srv/www/htdocs/empty/tar: Error exit delayed from previous errors

Hat vielleicht jemand eine Idee ???

Verwendung findet hier VB 3.0.3 German auf einem RootServer.

Gruß Filou

m-e-h.com
24.11.2004, 16:16
Hat denn echt keiner ne Idee?!

cm

m-e-h.com
07.12.2004, 08:21
So, ich hab nochmal ein bisschen rumprobiert:

Wenn ich das Backup manuell über /admincp/backup.php?do=choose mache, dann erstellt er mir ein ordnungsgemäßes Backup mit einer Größe von 139571003 Bytes.
Für die Sache braucht der Server auch locker ne halbe bis eine ganze Minute.

Wenn ich das Backup-Script aufrufe (über Zeitgesteuerete Aufgaben), dann setzt der mir binnen Sekunden (unter 10) einen Dump mit immer um die 12100000 Bytes hin.

Ich hab irgendwie die Befürchtung, dass der mir korrupte Backups macht.
Deswegen wäre es mir auch wichtig, wenn sich mal jemand der Sache annehmen könnte (u.a. auch der Hack-Autor).

thx!

cm

Onkel_Tom
07.12.2004, 14:13
Ich habe das Script auf mehreren vB's laufen und überall funktioniert es hervorragend. Ich kann mir nur vorstellen das es bei Dir wegen timeouts oder PHP Restriktionen nicht korrekt ausgeführt werden kann.
Bevor Du mit korrupten Backups rechnen musst würde ich Dir empfehlen das Script nicht mehr auszuführen und auf die Standardmethode von vB zurückzugreifen bzw. direkt über die shell einen Backup zu machen.

Du kannst Dir ja einen Cron-Eintrag basteln der Deinen Backup direkt auf dem Server als shell ausführt. Das müsste auf jeden Fall funktionieren und dürfe keiner Restriktion unterliegen.

m-e-h.com
07.12.2004, 15:31
Sch***e.

Ich hab so was schon fast befürchtetm irgendwie ist die Sache sehr seltsam, dass z.B. auch der SMS-Hack von PcFreak auf dem Board nicht läuft während das in der Testumgebung auf nem anderen Server einwandfrei klappt.

Mal sehen, evt. setze ich mich mal mit all-inkl.com in Verbindung und versuche zu klären, wo das Problem liegt.

Ich werde das Script dann wohl bis auf weiteres stillegen müssen :(

Trotzdem: Dankeschön!

cm

Onkel_Tom
07.12.2004, 16:14
Fakt ist auf jeden Fall das es weder am vB liegt noch am Backupscript. Wenn Du Dir das Backupscript als solches mal anschaust wirst Du feststellen das es eigentlich nichts anderes enthält als "handelüblich" Unixbefehle die halt aus dem PHP raus gestartet werden. Du kannst diese auch direkt auf Deiner Shell ausführen. Sollte die dort laufen hat wohl Deine PHP Konfiguration eine Limitation die dem Script das korrekte ausführen verbietet.
Es liegt also am Server bzw. an der Konfiguration des Servers.

m-e-h.com
16.12.2004, 18:49
Hi, also ich hab mal bei all-inkl.com nachgefragt und denen mal das Script geschickt.
Die waren dann so nett und haben beide Dumps verglichen:
Die sind beide OK, die Größenunterschiede kommen nur durch unterschiedliche Formatierungen und Kommentierungen zustande!

Bleibt jetzt nur noch die Frage, warum ich manchmal mehrere Dumps hab...

cm

Hooge
04.06.2005, 19:03
Wenn ich das Script teste und unter "Log der Aufgaben" nachsehe erhalte ich die Meldung " Datenbanksicherung gespeichert unter /public_html/admincp/backup am 2005-06-04_Saturday-18.34 (file name 2005-06-04_Saturday-18.34.sql"

Wenn ich in meinem FTP-Programm den Backup-Ordner aufrufe, ist er leer! Auch über die Suchfunktion des FTP-Programmes finde ich die Datei nicht.

Kann jemand helfen?

Onkel_Tom
05.06.2005, 00:12
Darf der Server überhaupt in das Verzeichnis backup schreiben???
eventuell chmod 755

Hooge
05.06.2005, 19:15
öhem, war wohl eher ein Fehler im Pfad

Onkel_Tom
05.06.2005, 21:14
Na gut, Hauptsache Du hast den Fehler gefunden ;)

Hooge
06.06.2005, 06:39
Heute nacht hat nun die erste automatische Sicherung stattgefunden. Wie schon gestern bei der manuellen Sicherung wurde neben der sql-Datei eine offenbar leere txt-Datei (0 Byte) namens 2005-06-05_Sunday-21.13-error-txt erzeugt. Was hat das zu bedeuten?

Onkel_Tom
06.06.2005, 08:17
So lange sie null Byte hat ist Deine Datensicherung ohne Probleme durchgelaufen. Eigentlich sollte sie nur erstellt werden sobald ein Fehler auftaucht.

Logo
26.07.2005, 08:35
hmm also ich hab folgendes problem seit heute.

wir sind gestern umgezogen und auf dem alten server lief alles einwandfrei. nun haben wir heute nacht das erste mal ein autobackup gehabt und folgende fehlermeldung bekommen:


Forum DB Backup


Fatal error: Maximum execution time of 30 seconds exceeded in /home/httpd/vhosts/online-age.de/httpdocs/forum/includes/mysqlbackup.php on line 1311


das schlimme ist eigentlich, dass das forum offline bleibt. die db is in natura 200mb groß. er hat aber nur 23mb gesichert :(

kann mir da wer helfen ? wir haben einen rootserver bei hosteurope.de

Onkel_Tom
26.07.2005, 12:20
In diesem Fall solltest Du mal Deinen Hoster (Hosteurope) fragen warum ein ein PHP Limit von 30 Sekunden bei einem Rootserver festlegt.
Falls es sich definitiv um einen Rootserver handelt kannst Du das Ausführungszeitlimit für PHP in der PHP.ini ändern bzw. auf einen größeren Wert setzen.

Logo
26.07.2005, 13:23
werd ich heut am abend mal testen und probieren ;)

ich poste anschliessend morgen was dabei rausgekommen ist

Logo
26.07.2005, 13:56
btw. was für einen wert empfiehlst du den ?

ich hab grad nachgesehen und es ist wirklich nur ein wert von 30 sek drinnen :(

StGaensler
26.07.2005, 18:53
Wenn er in 30 Sekunden 23 MB sichert, dann sichert er in 300 Sekunden 230 MB, somit würde ich einen Wert um die 300 Sekunden empfehlen.

Sinnvoller wäre es aber, den Wert generell auf 30 Sekunde zu lassen, und nur in diesem Script per ini_set() die Ausführungszeit zu erhöhen. Das musst du aber auch irgendwo in der php.ini erlauben.

Logo
26.07.2005, 21:24
so iuch bin mit meinem latein am ende.

könnt ihr es nun mal so richtig für anfänger erklären ;)

ich bin einfach am ende nach 48 stunden durchmachen ;)

Logo
27.07.2005, 14:22
munter retour ;)

also ich hab nachgesehen. in der php.ini is das time out bei 600 sekunden :(

Onkel_Tom
27.07.2005, 14:26
Hmm, das ist komisch da Dein Fehler ja defintiv ausgibt das der Timeout von 30 Sekunden überschritten worden ist...
Irgendwo muss das nochmals für diesen Benutzer bzw. das Web begrenzt sein. Am Besten mal Deinen Hoster fragen, er hat das System vorkonfiguriert und sollte wissen wo die Crux versteckt ist.

StandBy1
26.10.2005, 15:40
hatt wer diesen Wiklich Genialen Hack schon unter vb3.5 am Laufen bzw ne Ahnung wie man ihn Anpassen kann ????

Mystics
26.10.2005, 23:34
hatt wer diesen Wiklich Genialen Hack schon unter vb3.5 am Laufen bzw ne Ahnung wie man ihn Anpassen kann ????Ersetze mal:
if ($DB_site == NULL)
{
exit;
}mit:
if (!is_object($vbulletin->db))
{
exit;
}Und eigtl. müsste man das auch entfernen können:
// Da einige Personen Probleme mit undefinierten Abfragen hatten sollte die global.php eingebunden werden, bei mir hat es ohne funktioniert...
require_once('./global.php');
// Holen Datenbankvariablen aus der config.php
require('./includes/config.php');

StandBy1
27.10.2005, 05:37
Mystics was soll ich sagen du bist einfach Genial es Funzt
Super vielen Dank du hast mir Heute schon den Tag Gerettet

MfG
SB1

Paridus
30.10.2005, 14:24
ich habe das script nun so eingebaut wie hier beschrieben und habe es auch auf den stand von 3.5 gebracht.

das backup wird auch soweit angelegt nur wenn ich nun meine sql anschaue steht folgendes drin:



Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help


was mache ich falsch?

StandBy1
30.10.2005, 15:24
schau mal da
http://www.vbulletin-germany.com/forum/showthread.php?t=19933
da stehen noch Anpassungen die vorzunehmen sind damit es Funktioniert

MfG
SB1

Paridus
30.10.2005, 15:51
ich habe nun die einstellungen verändert:



<?php
/* ####################################
Automated backup
by: Brad.loo
Version: 1.3.1
Deutsche Version by OnkelTom
Version: 1.1
###################################### */

error_reporting(E_ALL & ~E_NOTICE);
// Da einige Personen Probleme mit undefinierten Abfragen hatten sollte die global.php eingebunden werden, bei mir hat es ohne funktioniert...
#require_once('./global.php');
// Holen Datenbankvariablen aus der config.php
#require('./includes/config.php');
if (!is_object($vbulletin->db))
{
exit;
}
// Verwende das Datum als Dateiname
// Bsp.: Wie man den Dateinamen nach eigenem Wunsch ändern kann
// Erklärung der einzelnen Parameter findet Ihr unter http://www.php.net/manual/de/function.date.php
//
// $file_date = date('U'); // Dateiname entspricht den Sekunden seit Beginn der UNIX-Epoche
// $file_date = date('l'); // Dateiname entspricht dem ausgeschriebener Tag der Woche z.B. Monday, Tuesday usw.
// $file_date = date('l-F_j_Y'); // Dateiname entspricht dem Format: Monday-March_8_2004.tar.gz oder sql
$file_date = date('Y-m-d_l-H.i'); // Dateiname entspricht dem Format: 2004-03-08_Monday-04.00.tar.gz oder sql
$cur_date = date('d.m.Y-H:i'); // Dieses Datum wird zur Anzeige im Log der Aufgaben verwenden, ändern nicht nötig!
// Generiere Datenbansicherung als .sql Datei
// orginal
#exec('mysqldump --add-drop-table -h' .$servername. ' -u' .$dbusername. ' -p' .$dbpassword. ' ' .$dbname. ' 2>' .$DUMP_PATH. '/' .$file_date. '-error.txt >' .$DUMP_PATH. '/' .$file_date. '.sql');
exec('mysqldump --add-drop-table -h' .$config['MasterServer']['servername']. ' -u' .$config['MasterServer']['username']. ' -p' .$config['MasterServer']['password']. ' ' .$config['Database']['dbname']. '2>' .$DUMP_PATH. '/' .$file_date. '-error.txt >' .$DUMP_PATH. '/' .$file_date. '.sql');

$log_db = 'Datenbanksicherung gespeichert unter ' . $DUMP_PATH . ' am ' . $file_date . ' (file name ' . $file_date . '.sql';
// Sollen wir die Datei komprimieren ?
if ($DUMP_MAKE_TAR == '1')
{

// komprimiere die Datei als tar.gz und lösche die nicht mehr benötigte .sql Datei
exec('tar -cSz --remove-files -C' .$DUMP_PATH. ' -f' .$DUMP_PATH. '/' .$file_date. '.tar.gz ' .$file_date. '.sql ' .$file_date. '-error.txt');
$log_db = 'Datenbanksicherung gespeichert unter ' . $DUMP_PATH . ' am ' . $cur_date . ' Uhr (Dateiname ' . $file_date . '.tar.gz';

}
// logs erzeugen
log_cron_action($log_db, $nextitem);
echo('Das Datenbank Sicherungsscript wurde fehlerfrei aufgerufen. Um zu prüfen ob die Sicherung auch korrekt ausgeführt worden ist prüfe bitte den Inhalt Deines Datenbanksicherungs-Verzeichnis. Hinweis: Die Ausführung des Scripts kann mehrere Minuten dauern, die Ausführungszeit hängt von der Größe der Datenbank ab und von der Leistung des Servers.');
?>


trotzdem funktioniert das nicht. :(

StandBy1
30.10.2005, 16:55
wieso hast du denn das Auskommentiert :
#require('./includes/config.php');
wie soll das Script denn so an seine Daten kommen ;-)

Paridus
30.10.2005, 17:25
Und eigtl. müsste man das auch entfernen können:
// Da einige Personen Probleme mit undefinierten Abfragen hatten sollte die global.php eingebunden werden, bei mir hat es ohne funktioniert...
require_once('./global.php');
// Holen Datenbankvariablen aus der config.php
require('./includes/config.php');

siehe hier das posting von mystics ..

Paridus
30.10.2005, 17:41
so ich habe es wieder ausgeklammert, nun bleibt das script hier h&#228;ngen:

Datenbanksicherung durchf&#252;hren

StandBy1
30.10.2005, 20:03
so habe ich es und so sollte es gehen in so Fern du auch alle daten wie im Orginal in der config drinn hast



<?php

/* ####################################
Automated backup
by: Brad.loo
Version: 1.3.1
Deutsche Version by OnkelTom
Version: 1.1
###################################### */


error_reporting(E_ALL & ~E_NOTICE);

// Holen Datenbankvariablen aus der config.php
require('./includes/config.php');

if (!is_object($vbulletin->db))
{
exit;
}

// Verwende das Datum als Dateiname
// Bsp.: Wie man den Dateinamen nach eigenem Wunsch ändern kann
// Erklärung der einzelnen Parameter findet Ihr unter http://www.php.net/manual/de/function.date.php
//
// $file_date = date('U'); // Dateiname entspricht den Sekunden seit Beginn der UNIX-Epoche
// $file_date = date('l'); // Dateiname entspricht dem ausgeschriebener Tag der Woche z.B. Monday, Tuesday usw.
// $file_date = date('l-F_j_Y'); // Dateiname entspricht dem Format: Monday-March_8_2004.tar.gz oder sql

$file_date = date('Y-m-d_l-H.i'); // Dateiname entspricht dem Format: 2004-03-08_Monday-04.00.tar.gz oder sql
$cur_date = date('d.m.Y-H:i'); // Dieses Datum wird zur Anzeige im Log der Aufgaben verwenden, ändern nicht nötig!

// Generiere Datenbansicherung als .sql Datei
exec('mysqldump --add-drop-table -h' .$config['MasterServer']['servername']. ' -u' .$config['MasterServer']['username']. ' -p' .$config['MasterServer']['password']. ' ' .$config['Database']['dbname']. ' 2>' .$DUMP_PATH. '/' .$file_date. '-error.txt >' .$DUMP_PATH. '/' .$file_date. '.sql');

$log_db = 'Datenbanksicherung gespeichert unter ' . $DUMP_PATH . ' am ' . $file_date . ' (file name ' . $file_date . '.sql';

// Sollen wir die Datei komprimieren ?
if ($DUMP_MAKE_TAR == '1')
{

// komprimiere die Datei als tar.gz und lösche die nicht mehr benötigte .sql Datei
exec('tar -cSz --remove-files -C' .$DUMP_PATH. ' -f' .$DUMP_PATH. '/' .$file_date. '.tar.gz ' .$file_date. '.sql ' .$file_date. '-error.txt');

$log_db = 'Datenbanksicherung gespeichert unter ' . $DUMP_PATH . ' am ' . $cur_date . ' Uhr (Dateiname ' . $file_date . '.tar.gz';

}

// logs erzeugen
log_cron_action($log_db, $nextitem);
echo('Das Datenbank Sicherungsscript wurde fehlerfrei aufgerufen. Um zu prüfen ob die Sicherung auch korrekt ausgeführt worden ist prüfe bitte den Inhalt Deines Datenbanksicherungs-Verzeichnis. Hinweis: Die Ausführung des Scripts kann mehrere Minuten dauern, die Ausführungszeit hängt von der Größe der Datenbank ab und von der Leistung des Servers.');

?>

Paridus
30.10.2005, 21:03
ok, das script hat jetzt das backup erstellt. ;)

aber es kommt zum schluss eine fehlermeldung



Invalid SQL:
INSERT INTO cronlog
(cronid, dateline, description)
VALUES
(75, 1130702064, 'Datenbanksicherung gespeichert unter /is/htdocs/20975/www.c*******.de/admincp/sql_backup am 30.10.2005-20:54 Uhr (Dateiname 2005-10-30_Sunday-20.54.tar.gz');
MySQL-Fehler : Lost connection to MySQL server during query
Fehler-Nr. : 2013
Datum : Sunday, October 30th 2005 @ 08:54:53 PM
Skript : http://www.********.de/admincp/cronadmin.php?do=runcron&cronid=75
Referrer : http://www.********.de/admincp/index.php
IP-Adresse : 8*******
Benutzername : paridus
Klassenname : vb_database



kannst du mir sagen wo da noch ein fehler ist?

Onkel_Tom
30.10.2005, 22:14
MySQL-Fehler : Lost connection to MySQL server during query
Fehler-Nr. : 2013



Wie im Log schon steht... Die Verbindung zum MySQl Server wurde getrennt bzw. ist abgebrochen.
Das liegt nicht am Script!

Paridus
30.10.2005, 23:18
gut, es scheint nun zu laufen.

folgende &#252;berlegung w&#228;re noch wert:

wie w&#228;re es denn wenn das gepackte backup noch mir einem passtwort gesch&#252;tzt werden w&#252;rde und diese dan an den damin verschikt werden w&#252;rde. dann w&#228;re das doch viel sicherer!

wie w&#228;re es wenn nur 3 backup&#180;s erstellt werden w&#252;rden wobei das &#228;lteste immer mit dem neustem &#252;berschrieben werden w&#252;rde.

Paridus
20.12.2005, 15:22
kann es sein das es in der neuen 3.5.2 version nicht mehr funktioniert?

HarryHallers
28.04.2006, 13:33
kann es sein das es in der neuen 3.5.2 version nicht mehr funktioniert?

Würde mich auch interessieren...

Pathor
28.04.2006, 14:54
Würde mich auch interessieren...

http://www.vbulletin.org/forum/showthread.php?t=114097&highlight=cron%2A+backup

HarryHallers
28.04.2006, 17:05
http://www.vbulletin.org/forum/showthread.php?t=114097&highlight=cron%2A+backup



Upload the product-databasebackup.xml file using the upload new product link in your admin cp panel.

Was für einen product link den?

Wenn ich das versuche als Plugin zu installieren kommt nur ein Fehler.

Weiß wer Rat?

Pathor
28.04.2006, 17:32
Plug-in-System --> Produkte verwalten --> [Produkt hinzufügen/importieren]

HarryHallers
28.04.2006, 17:45
Plug-in-System --> Produkte verwalten --> [Produkt hinzufügen/importieren]


lol Danke. Aber ich bin echt zu breit heute. Wo stelle ich den jetzt ein wohin der cron speichern soll?


Grüße.

Mystics
28.04.2006, 17:57
In den vBulletin-Einstellungen -> Database Backup Settigs.

StormCrow
10.07.2006, 22:33
Wieso verwendet ihr nicht einfach den mysqldumper anstelle das rad neu zu erfinden!?

hcmagix
10.07.2006, 23:09
28.04.2006, 17:57 ;)

Brauch ich nicht hab'n root ;)

HarryHallers
11.07.2006, 09:15
Wieso verwendet ihr nicht einfach den mysqldumper anstelle das rad neu zu erfinden!?

Kann mysqldumper auch mehrere Datenbanken und Tage archivieren wie MySQL database backup http://www.restkultur.ch/personal/wolf/scripts/db_backup/ ?
Ist imho das beste Tool.

Ich benutzte das Produkt aus Sicherheitsgründen, da ich auch auf einen Root arbeiten muss, aber so wenig wie möglich Scripte darauf laufen haben möchte.

Hier waren in Vergangenheit die größten Sicherheitslöcher.

Grüße.

hcmagix
11.07.2006, 09:22
...

Ich benutzte das Produkt aus Sicherheitsgründen, da ich auch auf einen Root arbeiten muss, aber so wenig wie möglich Scripte darauf laufen haben möchte.

Hier waren in Vergangenheit die größten Sicherheitslöcher.

Grüße.

Na dann selber bauen :)
http://www.vbulletin-germany.com/forum/showthread.php?t=22889

Arbeitet sicher und zuverlässig seit Monaten.

StormCrow
11.07.2006, 11:08
Schau es dir doch selber an .... http://www.mysqldumper.de/ :-)

Hab eigentlich bis jetzt keine probleme damit gehabt - du kannst Dateien im Multipart sichern (praktisch da es sonst bei einigen hostern zu einem datenbank timout kommt), Sie dir per email schicken lassen, auf einen anderen ftp speichern lassen, ja und vieles vieles mehr - aber wie gesagt - selber schauen.

koby
24.06.2007, 19:00
Fatal error: Call to a member function query_first_slave() on a non-object in /vhosts/rnb-base.com/subdomains/ubl/httpdocs/forum/global.php on line 241


der fehler kommt immer bei mir :/ wieso das was kann ich dagegen tun

hcmagix
24.06.2007, 19:20
/subdomains/hm ich denke das es daran liegt

Onkel_Tom
24.06.2007, 19:30
Also bei mir läuft das Script schon seit Jahren und ohne Probleme! Sogar unabhängig von den vB Versionen :)

koby
26.06.2007, 20:16
wie entfernt man den die subdomains leiste oder folder oder wie das heißt