Hallo,
wie erstelle ich ein Auto-Backup, ohne die Cron-Erweiterung? Denn diese ist mit der aktuellen Version 3.3.4 nicht kompatibel...
Grüße,
mapfei
Druckbare Version
Hallo,
wie erstelle ich ein Auto-Backup, ohne die Cron-Erweiterung? Denn diese ist mit der aktuellen Version 3.3.4 nicht kompatibel...
Grüße,
mapfei
Ich rufe das Backup per Cronjob meines Providers auf.
Pfad: system/modules/BackupDB/AutoBackupDB.php
VG
Und welche Datei ruft man da auf?
Hab ich oben gerade ergänzt. Sorry.
Es genügt, das Skript "system/modules/BackupDB/AutoBackupDB.php" aufzurufen, z.B. mit "wget". Das kann man dann per echtem cron machen oder auch in ein Backup-Skript einbauen.
Hab das allerdings nur unter Contao 3.2 getestet.
edit: Mensch geht das schnell hier :)
Danke euch! Das ging in der Tat fix... :)
Anderes Problem - möchte das nun auch für einen Kunden einrichten. Dieser hostet seine Seite bei 1&1. Hier lässt sich ein Cronjob leider nicht schön komfortabel im Backend einrichten.
Da hatte ich die Idee, das z.b. über cronjob.de zu regeln. Hier muss man bei der Einrichtung des Cronjobs u.a. ein HTML-File nach vorgegebenem Muster im Root-Verzeichnis ablegen, also z.b: www.domain.de/cronjob_xxxxx.html. Diese Datei hat als Inhalt lediglich cronjob.de.
Dummerweise lässt sich diese Datei "von außen" jedoch nicht aufrufen, aufgrund irgendwelcher Rewrite-Regeln vermute ich. Bekomme ich das irgendwie gelöst?
Grüße,
mapfei
Ich hatte es früher auch über cronjob.de gelöst. Hmm evtl. eine Ausnahme in der htaccess schreiben. Kann es auch eine .htm sein? Dann greift die htaccess von Contao nicht.
VG
Leg Dir einen Account bei cronjobservice.net an, von dort aus geht das auch in tieferen URLs. Außerdem kannst Du Serverüberwachungen einrichten.
Hat vermutlich mit meinen Rewrites zu tun. URLs umschreiben, Ordner-URLs, etc.
Hab's auch hier versucht. Leider ebenfalls nicht erfolgreich. Im konkreten Fall muss ich die Datei http://www.domain.de/system/modules/...toBackupDB.php aufrufen. Aus dem Browser funktioniert das auch...
Ist das bei der Erweiterung BackupDB auch wirklich die richtige Datei, die ich aufrufen muss? Ich erhalte nämlich keine Bestätigungsmail bei Ausführung der AutoBackupDB.php, so wie ich es in den Einstellungen eigentlich hinterlegt habe.
Grüße,
mapfei
Auf diesem Weg gibts keine Bestätigung. Und ja es ist die richtige Datei. Werden denn Backups im Filesystem files/Autobackup angelegt?
Ja, er legt nach und nach (täglich) eins an und wenn 5 erreicht sind wird das letzte Backup gelöscht.
Ich sichere 31 um den ganzen Monat zu haben. Daher hab ich immer 31 Backupfiles im Ordner.
Ja, ich glaube wenn der Cronjob von extern kommt gibt´s kein Mail. Ich denke das ist absicht.
So habe ich das auch verstanden. Er legt aber keine 5 Backups an, auch wenn ich das Script 5x manuell starte bzw. direkt aufrufe.
Und das Anlegen des Cronjobs verweigert sowohl cronjobservice.net als auch cronjob.de... :(
Ich glaube er macht keine 5 weil keine 5 Tage vergangen sind. Ich denke hier ist eine Datumsprüfung drin.
VG
Hm, das kann gut sein.
Und wie bekomme ich nun meine Cronjobs ans laufen? :o
Ich habe es gerade noch einmal ausprobiert mit einem BackupDB bei All-Inkl.
Der Cronjob lief erfolgreich durch, es wurde keine Datei erstellt.
Ich muss mir das mal ansehen, warum es nicht geht. Ich trigger sonst über die Cron-Erweiterung da hat es bisher immer funktioniert.
Ich melde mich, wenn eine neue Version verfügbar ist.
Seltsam, bei mir wird ja eine Datei erzeugt, aber der Cronjob will nicht...
Wieso nutzt du nicht den internen Contao Cronmechanismus?
Wie funktioniert der?
Da habe ich mich von dem FTP-Programm foppen lassen.
BackupDB hat schon richtig funktioniert und auch die Dateien angelegt und umbenannt, wie es sein soll.
Mein Problem war, dass ein Refresh im FTP-Verzeichnis die Timestamps der Dateien nicht angepasst hat. Bei richtigen Refresh war alles korrekt.
Kaum macht man es richtig ... funktioniert es auch :-)
Hab's jetzt auch mit der Cron-Erweiterung ans Laufen bekommen. Danke nochmals!
Ich versuche gerade mittels eines cron vom Hoster die Datei /system/modules/BackupDB/AutoBackupDB.php aufzurufen.
Dabei erscheint immer folgende Fehlermeldung: /system/modules/BackupDB/AutoBackupDB.php: Permission denied
Liegt dies am Hoster?
Arbeite mit Contao 3.4.5.
Besten Dank für einen Tipp!
Michael
Hallo Michael,
das sollte aber eigentlich so funktionieren. Es kann nur sein, dass Du die komplette URRL angeben musst und nicht den relativen Pfad zum Startverzeichnis der Domain. Der Server weiß ja nicht, für welche Domain du das starten möchtest.
Code:http://www.meineDomain.tld/system/modules/BackupDB/AutoBackupDB.php
Hallo do_while
Ich rufe die Datei mit dem Pfad:
Mit deinem vorgeschlagenen Pfad wird die Datei nicht gefunden.Code:/home/MEIN_BENUTZERNAME/www/MEINE_DOMAIN/system/modules/BackupDB/AutoBackupDB.php
Beste Grüsse
Michael
Was passiert, wenn Du das Backup über die URL im Browser aufrufst?
Hast Du über die Erweiterungsverwaltung oder Composer installiert?
via Browser: Das BackUp wird ausgeführt und ich erhalte ein Bestätigungsmail.
via Erweiterungsverwaltung
Dann klappt aber der Cronjob-Aufruf nicht. Das hat dann nichts mit der Contao-Installation zu tun.
Kann man im Cron nicht auch die URL eintragen, oder muss es immer relativ zum Webspace sein?
Es kann auch sein, dass Du relativ zum www-Verzeichnis angeben musst, also ohne /home/MEIN_BENUTZERNAME/www.
Hat der Hoster dazu etwas in den FAQs stehen?
Laut FAQ stimmt mein Pfad.
Ich denke daher kommt auch die Fehlermeldung: Permission denied, mit einem falschhen Pfad steht: not found
Hmm...
Ich hatte auch mal so einen Fall, wo es beim Provider einfach nicht einstellbar war.
Ich bin dann auf einen kostenlosen bzw. preiswerten Cronjobservice ausgewichen.
Vielen Dank für deine Hilfe!
Werde morgen einmal den Provider kontaktieren.
Beste Grüsse
Michael
Das "Permission denied" heißt ja nicht, dass die Datei nicht gefunden wird. Ich vermute mal stark, dass es einfach heißt, dass die Datei nicht ausgeführt werden kann/darf. Normalerweise muss man ein PHP-Script eben vom PHP-Interpreter ausführen lassen.
Das heißt, da muss dann sowas wie "php /home/MEIN_BENUTZERNAME/www/MEINE_DOMAIN/system/modules/BackupDB/AutoBackupDB.php" rein in die crontab. Je nachdem. was im Skript drinsteht, klappt es dann - oder eben auch nicht. Wenn zum Beispiel relative Pfade für includes, requires o.ä. drinstehen, muss man dafür sorgen, dass das Skript aus dem richtigen Arbeitsverzeichnis aufgerufen wird, oder man muss die include-Pfade in der php.ini ergänzen. Denn da steht meist nur ein globales Verzeichnis und das aktuelle Verzeichnis drin. Man sollte auch überprüfen, ob da ein geeigneter Interpreter aufgerufen wird bzw wie man den geeigneten aufruft (PHP-Version!)
Wenn das alles nicht klappt, kann man auch die URL aufrufen per wget oder curl. Dann aber nötigenfalls die übertragene Datei nach /dev/null ausgeben ;)
Edit: Ein Problem hat die Aufrufbarkeit über die URL allerdings meiner Meinung nach schon. Wenn da direkt dein Backup-Skript aufgerufen wird, kann dich da jemand prima ärgern, indem er es direkt vielfach aufruft und damit entweder die Festplatte vollschreibt oder den Server überlastet. Da sollte man dann zumindest Vorkehrungen treffen. Aber das wird BackupDB wohl (hoffentlich) schon passend verhindern.
Besten Dank für die ausführliche Antwort!
Mit
läuft das AutoBackupDB.Code:php /home/MEIN_BENUTZERNAME/www/MEINE_DOMAIN/system/modules/BackupDB/AutoBackupDB.php"
Aber nun erhalte ich zusätzliche eine Fehlermeldung, die wie du beschrieben hast wahrscheinliche auf falsche Pfade etc. im Script zurückzuführen sind. Ich muss morgen einmal das Skript genauer anschauen.
Aber gibt es keine einfachere Lösung für ein tägliches Backup der DB?
Wie bereits geschrieben, du kannst das Skript auch mit wget, cURL oder lynx per URL aufrufen.
Oder, wenn du bei uberspace hostest, dann wird dort sowieso ein tägliches Backup deiner Datenbanken gemacht ;)