BackWPup startet mittels mit WordPress Cron nicht automatisch

  • Hallo!

    Ich habe folgendes Problem. Ich benutze Wordpress 3.8 und BackWPup Version 3.1.1 (nicht die gekaufte Vollversion).
    Ich habe nun eingestellt, dass er ein tägliches Backup um 3 Uhr in der Früh machen soll. Leider tut er das nicht, nur dann, wenn ich mich im Laufe des Tages in den Blog einlogge, startet er das Backup, was aber nicht der Sinn der Sache ist. Eigentlich sollte er das ja automatisch um 3 Uhr in der Früh machen, denn wenn ich mich erst manuelle jeden Tag einloggen muss, das er das Backup startet, brauch ich ja keinen Cron Job.
    Ich hoffe, dass mir jemand helfen kann, woran das liegen könnte.

    LG
    Thomas

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo Thomas,

    das kommt daher, dass das Cron-System von WP keine "echten" Cronjobs verwendet. Das ist aber kein Fehlverhalten von WP. Cronjobs müssen vom Server gestartet werden. WP ist keine Anwendung die permanent im Hintergrund läuft - so wie jede andere Web-Applikation auch nicht. Ein Aufruf von außen ist daher unbedingt nötig.

    Wenn Du eine echte Zeitsteuerung benötigst, dann brauchst Du ein Webhosting-Paket in dem Du auch Cronjobs anlegen kannst. Wenn das der Fall ist kannst Du das einfach lösen.

    In der wp-config.php gehört folgende Zeile eingetragen:

    Code
    define('DISABLE_WP_CRON', true);

    Dadurch führt WP die anstehende Jobs nicht mehr beim Seitenaufruf aus.

    Per Cron musst Du dann im gewünschten Intervall die wp-cron-php aufrufen.

    Peter

  • Hallo Peter!

    Danke sehr für deine rasche und ausführliche Antwort.
    Ich frage mich jetzt nur, warum kann man dann beim Plugin BackWPup überhaupt unter Cron Jobs eine Zeit einstellen, wenn er das dann sowieso nicht macht?
    Ja, ich habe ein Webhosting Paket, wo ich Cron Jobs auführen kann. Heißt das nun, dass ich bei mir beim Webhosting einstellen muss, wann dieser Cron Job ausgeführt werden muss und nicht beim Plugin BackWPup im Wordpress?
    Was muss ich genau als Befehl eingeben, damit die wp-cron-php aufgerufen wird, einfach nur den Pfad? Kenn mich leider noch nicht sogut aus.

    LG

  • Ich glaube, dass ich es schon gefunden habe. Im Plugin BackWPup steht ein Link zum Aufrufen des Jobs. Diesen werde ich beim Webhosting eintragen.

  • Hallo Thomas,

    super wenn Du schon selbst fündig geworden bist.

    Der Cronjob sollte in etwa so aussehen:

    Code
    wget -p -O /dev/null http://www.example.com/wp-cron.php


    Ich frage mich jetzt nur, warum kann man dann beim Plugin BackWPup überhaupt unter Cron Jobs eine Zeit einstellen, wenn er das dann sowieso nicht macht?

    Dass WP das gar nicht macht, stimmt so ja nicht - nur eben nicht genau zur gewünschten Zeit. Bei jedem Aufruf schaut WP in der eigenen internen Cron-Tabelle nach, welche Jobs anstehen und führt die aus. Das erfolgt eben aber oft erst später - abhängig davon wie oft Dein Blog besucht wird. Beim ersten Aufruf nach der geplanten Zeit läuft dann der Job.

    Durch das Einrichten eines echten Cron-Jobs wie beschrieben benützt Du ja auch das Cron-System von WP. Du sorgst in dem Fall lediglich dafür, dass der Aufruf auch zur gewünschten Zeit erfolgt. Aus dem Grund solltest Du den Aufruf auch nicht nur zB um 3:00 machen sondern mehrmals am Tag. Es gibt ja vielleicht mehrere Jobs, die in Deiner WP Cron-Tabelle eingetragen sind. Die würden sonst alle um 3:00 laufen.

    LG
    Peter

  • Hallo Peter!

    Danke sehr für deine Antwort, habe es auch gleich ausprobiert, aber leider wird der Job nicht gestartet. Ich habe folgendes beim meinem Webhoster eingetragen:

    Befehl:

    wget -p -O http://heiderer.at/blog/wp-cron.p…=runext&jobid=1

    Minute: 0

    Stunde: 7

    Tag des Monats: *

    Monat: *

    Wochtentag: *

    Die * stehen für täglich.
    Was kann ich da noch falsch machen? Ist es wirklich notwendig, dass in der wp-config.php den Wert "define('DISABLE_WP_CRON', true);" eintrage? Denn das habe ich habe ich noch nicht gemacht, das steht nämlich auch nicht im Plugin, dass man das machen soll?

    Alternativ gäbe es noch ein ...sh Script, was ich runtergeladen habe und irgendwo auf meinem Server abgelegt habe. Leider kommt dann nach ein paar Minuten folgende Fehlermeldung:

    /bin/sh: /httpdocs/blog/BackWPup_cmd_start_job_1.sh: not found

    Ich hoffe, dass du mir nochmals helfen kannst.

    LG
    Thomas

  • Hallo Thomas,

    der Job, den Du erstellt hast, führt nur das Backup aus und nicht alle anstehenden WP Cron Jobs.

    Wenn Du den Eintrag in der wp-config nicht machst, dann läuft das normale WP Cron-System parallel - also bei jedem Aufruf der Seite. Wenn Du im WP den Job für 3:00 eingetragen hast, den Cronjob aber erst um 7:00 startest dann läuft der womöglich schon früher, weil zB um 5:00 irgend wer Deine Seite aufruft.

    Du hast damit eine komische Mischform aus "echten" und "unechten" Cronjobs. Das würde ich nicht machen. An Deiner Stelle würde ich nur die wp-cron.php ohne Parameter aufrufen. Dann werden von WP alle anstehenden Jobs ausgeführt. Das würde ich zB stündlich machen. Und dafür das WP Cron-System in der wp-config.php deaktivieren.

    Auch wenn der Cronjob stündlich läuft wird immer nur das ausgeführt, was gerade ansteht. Dein Backup läuft dann nicht stündlich.

    Nur so hast Du eine echte Cron-Steuerung und bist nicht abhängig davon, wann Deine Seite aufgerufen wird - und zwar für alle WP Cronjobs.

    LG
    Peter

  • Hallo Peter!

    Danke sehr für deine ausführliche Antwort. Ich verstehe schon was du meinst. Ich werde das berücksichtigen. Sollte ich noch Probleme haben, werde ich mich wieder bei dir melden. Du hast mir auf jeden Fall sehr geholfen.

    LG
    Thomas

  • Hallo Peter!

    Ich bin nun gerade dabei, deinen Rat zu befolgen und würde nochmals gerne sicher gehen, dass ich deinen Rat richten verstanden habe:

    1. den Code "define('DISABLE_WP_CRON', true);" einfach irgendwo in die wp-config.php einfügen (oder muss der an einer bestimmten Stelle stehen)
    2. im Plugin von Wordpress einstellen, dass das Backup um 3 Uhr in der Früh täglich gemacht wird
    3. bei meinem Webhoster stündlich einstellen, dass folgender Befehl ausgeführt werden soll: wget "[COLOR=#20779f]http://heiderer.at/blog/wp-cron.php?...runext&jobid=1[/COLOR]"

    Ich hoffe, dass es dann so passen müsste?

    LG
    Thomas

    Einmal editiert, zuletzt von dertommy (29. Januar 2014 um 09:52)

  • Hallo Thomas,

    1. einfach irgendwo, nur vor der Zeile "[FONT=fixedsys]/* That's all, stop editing! Happy blogging. */[/FONT]"
    2. richtig
    3. mit dem Aufruf würde nur dieser eine Job gestartet. Um alle anstehenden WP Cron Jobs abzuarbeiten ruf die wp-cron.php ohne Parameter auf - einfach alles danach inkl. dem Fragezeichen entfernen.

    LG
    Peter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!