Backup-Modul (beta)

In diesem Forum finden Diskussionen zu allen für ConPresso 3.x verfügbaren Modulen statt.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Backup-Modul (beta)

Beitrag von MarkusR »

habe noch was gebastelt
http://50n.de/cms/mod_backup.zip (25kB)

Ein Backup- und Restore-Modul auf SQL-Dump-Basis mit Umgehung der 2MB-Upload-Grenze, Laufzeitbegrenzungen für Scripte und sogar einem Versand des Backups per Mail (begrenzt durch memory-Größe in der php.ini)

Hier die Readme-Datei:
-------------------------------------------------------------------------
Vorabversion!!!

Installation des Backup-Moduls:

mod_backup als komplettes Verzeichnis hochladen
dem Verzeichnis mod_backup/db-backup Schreibrechte geben!!!

Nun in Conpresso einloggen.
Das Modul wird als solches gezeigt. Nach Anwahl die Rubrikeinstellungen
wie gewohnt vornehmen und das Modul erneut aufrufen.

Backup und Restore können über das CMS ausgeführt werden.

Alternativ kann beim GAU das Restore durch den manuellen Aufruf von
http://www.domain.tld/CONPRESSO_DIR/mod ... tei.sql.gz

Das Backup kann ebenfalls manuell angestoßen werden durch
http://www.domain.tld/CONPRESSO_DIR/mod ... upmail.php

Außerdem kann es dadurch automatisiert werden, daß
http://www.domain.tld/CONPRESSO_DIR/mod ... backup.php
in eine Datei, z.B. _content/index.php included wird, so daß bei Arbeiten im CMS vorher ein
Backup ausgeführt wird, dies aber nur einmal täglich (dafür ist wichtig, daß die Datei last_backup.dat
im Verzeichnis db-backup NICHT gelöscht wird)
-------------------------------------------------------------------------------

Hierbei ist ganz besonders wichtig ein vorheriges Backup von Hand zu machen, da beim Restore ALLE Tabellen gelöscht werden!

In const.php können einige Voreinstellungen durchgeführt werden, die auch für das automatische Backup wichtig sind.

BENUTZUNG AUF EIGENE GEFAHR!

Ich habe die Scripte nicht selbst geschrieben, sondern nur modifiziert (Mailversand) und in ein Modul eingepasst, daher sind einige Optionen vielleicht etwas "overdressed" ;o)



Beitrag bearbeitet (19.10.04 22:35)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Re: Backup-Modul (beta)

Beitrag von MarkusR »

Habe gerade nochmal ein Update nachgeschoben...

FIXES:
- mehrfaches Include der Klassendeklaration entfernt
- Konrolle und Hinweis auf SafeMode (vermutlich kein Backup möglich)

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Re: Backup-Modul (beta)

Beitrag von Mr. Magpie »

Hallo Markus,

ich (eher mein Auftraggeber ;-)) habe folgendes Problemchen mit Deinem ansonsten erstklassigen mod_backup: Wenn ich manuell ein Backup durchführe - durch Betätigen des Buttons "Backup erstellen!" - wird zwar korrekt ein Backup erstellt, aber die Datei last_backup.dat hat Null Byte Größe!
Wird beim Login autobackup.php ausgeführt, meckert das deswegen, anschließend findet sich aber eine korrekte last_backup.dat von 10 Byte Größe (Datumsstring).

Wo kann/muss ich was ändern damit dieser Fehler nicht mehr auftritt?? Bin ich etwa der einzige?

Mit freundlichen Grüßen und Dank im Voraus,

Günther
Günther Ludwig
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Re: Backup-Modul (beta)

Beitrag von Mr. Magpie »

Hallo,

hab's selber gelöst - und war gar nicht so schwer!

In backupmail.php wurde nirgendwo $actualdate definiert!

ich habe daher in backupmail.php vor

$file = fopen("../mod_backup/db-backup/last_backup.dat", "w");
fputs ($file, $actualdate);
fclose ($file);

die Zeile

$actualdate = date("Y-m-d");

eingefügt!
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Re: Backup-Modul (beta)

Beitrag von MarkusR »

Hm... muss ich mal prüfen...

ich benutze es nur noch als auto-Backup.... und in autobackup wird actualdate genau so definiert.

Eingebunden ins Backend wird bei jedem Aufruf (also bei Änderungen im Backend) ein Backup gemacht, wenn es nicht schon eins von heute gibt.

Aber wenn's so passt, dann ist ja gut... werde bei Gelegenheit nochmal nachforschen... ;o))

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 02:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Re: Backup-Modul (beta)

Beitrag von Mr. Magpie »

Hallo Markus,

wo ich gerade dabei bin, muss ich noch eine Frage nachschieben: Kann irgendwie verhindert werden, dass die ganze Welt auf dem Server einen Backup-Vorgang über den Web-Browser und die URL

http://www.domain.tld/CONPRESSO_DIR/mod ... upmail.php

anstoßen kann? Wenn ich einen .htaccess-Schutz anlege, interferiert das dan nicht mit dem Autobackup?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Re: Backup-Modul (beta)

Beitrag von MarkusR »

Gute Frage... das sollte man natürlich schützen...

der .htaccess-Schutz sollte eigentlich greifen, da alle nötigen Zugriffe ja auf Serverebene laufen und nicht über http
Vielleicht kannst Du ja auch mal mit Rechten experimentieren.

Ansonsten müsste man noch ein paar Codezeilen ändern... immerhin bist Du der erste, der sich ernsthaft damit beschäftigt! ;o))

Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 10:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Hallo, ich greife hier ein sehr wichtiges und sensibles Thema wieder auf.

Es ist grundsätzlich wichtig, sich vor Crashes zu schützen. Aber kann es sein, dass ein Restore nur bis zu einer bestimmten Datengröße möglich ist. Dann kann es wie in meinem Fall zu fehlerhaften Aktionen kommen.

Gruss, Daniel
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Nur als Info:

Genau wegen dem Problem der Dateigröße (mit phpmyadmin ist entsprechend der serverseitigen Uploadgröße Schluß, wenn man es nicht für die Nutzung eines FTP-Verzeichnisses konfiguriert) wurde das Modul entwickelt und benutzt das geniale BigDump.

Sollten die durch den serverseitigen SQL-Dump (das Modul macht das ja nicht selbst) Probleme mir dem Restore entstehen, dann bietet sich an das mittlerweile weiterentwickelte BigDump zu benutzen (http://www.ozerov.de/bigdump.php), daß auch mit den sehr groß geratenen Inserts keine Probleme mehr haben sollte.

Diese sind bei Dir durch intensiven Einsatz von Tabellen eben nicht kürzer zu kriegen.

Wenn ich es bei Dir richtig verstanden habe, dann hast Du diesen Teil der obenstehenden Anleitung nicht berücksichtigt:
Hierbei ist ganz besonders wichtig ein vorheriges Backup von Hand zu machen, da beim Restore ALLE Tabellen gelöscht werden!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 02:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal

Beitrag von semf »

... das problem waren in der tat wohl die gigantischen sieben inserts, die
in der tabelle prefix_news über 5300 datensätze wiederherstellen
sollten. das modul als auch phpmyadmin sind daran gescheitert!

5300 einzelne inserts dagegen waren dann erfolgreich.

ps: woher ich das weiß? ich habe daniel an ostern die datensätze wieder
eingespielt - hoffentlich erfolgreich!?
Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

semf hat geschrieben:ps: woher ich das weiß? ich habe daniel an ostern die datensätze wieder eingespielt - hoffentlich erfolgreich!?
Das hat er mir zumindest mitgeteilt... :wink:

Und wenn man sich die Bugfix-Liste von BigDump anschaut, dann wird auch klar, warum ich die aktuelle Version für das Restore mehrfach empfohlen habe... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Hier ein Workaround, um OHNE extended inserts Backups zu machen.

In backupmail.php

suche
system(sprintf('mysqldump -q -a -c -e'.$drop_table_string.' -h %s -u %s -p%s %s '.$tablestring.'| gzip > ... (die Zeile ist noch länger)

und ersetze es durch
system(sprintf('mysqldump -q -a -c'.$drop_table_string.' -h %s -u %s -p%s %s '.$tablestring.'| gzip > ... (die Zeile ist noch länger)

also einfach den Parameter "-e" entfernen.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Dani1978
ConPresso-Checker
Beiträge: 217
Registriert: 15.12.2005 10:27
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Beitrag von Dani1978 »

Hier ein Workaround, um OHNE extended inserts Backups zu machen.
Was heisst dieser Satz im Klartext. Lässt sich durch diese änderung der Restore auch bei großem Datenvolumen realisieren?

MfG, Danke euch!
Benutzeravatar
semf
Modul-Entwickler
Beiträge: 1853
Registriert: 01.01.1970 02:00
Wohnort: Gütersloh-Friedrichsdorf
Hat sich bedankt: 14 Mal
Danksagung erhalten: 40 Mal

Beitrag von semf »

... scheint so! den in der bugfix-liste zu bigdump findet sich bei Version 0.21b 2005-02-08 der hinweis 'extended inserts giveup bugfix (don't count linebreaks within text fields)'. und genau das wurde dir ja als fehler beim
restore gemeldet!

ps: das workaround von markusr generiert keine extended inserts - aber
das problem mit eben diesen extended inserts scheint mittlerweile
in bigdump behoben zu sein!
Viel Erfolg!

Module ConPresso 4.x
Latest News
Tell-a-friend

Module ConPresso 3.4.x
Index_X
Kontakt
RSS-Feed
Umfrage
Gästebuch
Tell-a-Friend

Modul-Download
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7117
Registriert: 01.01.1970 02:00
Hat sich bedankt: 103 Mal
Danksagung erhalten: 916 Mal

Beitrag von MarkusR »

Dani1978 hat geschrieben:
Hier ein Workaround, um OHNE extended inserts Backups zu machen.
Was heisst dieser Satz im Klartext. Lässt sich durch diese änderung der Restore auch bei großem Datenvolumen realisieren?

MfG, Danke euch!
Nochmal zur Klärung:

Es liegt NICHT am Datenvolumen!

Ich habe schon wesentlich größere Dumps als Deinen mit BigDump eingespielt. Kein Problem! Und dafür wurde BigDump ja auch entwickelt.

Das Problem sind die seeeeehr langen extended inserts, die Deine mySQL-Version da reinschreibt und vermutlich auch gar nicht anders kann, weil Deine Textfelder durch lange Tabellendefinitionen etwas ausufern...

Um Deine Frage aber zu beantworten: Ja. Das Restore wird dann etwas anders ablaufen, das Backup selbst wird um ein Vielfaches größer, aber das Restore sollte auch mit der alten BigDump-Version funktionieren.

Meine Empfehlung, das aktuelle BigDump zu benutzen scheint Dich ja nicht zu erreichen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle