Magento Cronjobs

Bei meiner Arbeit musste ich in der Vergangenheit sehr oft feststellen, daß viele Magento Shops ohne oder mit falsch eingerichteten Cron Jobs laufen. Cronjobs sind zeitgesteuerte Aufgaben, welche in einer Tabelle – der so genannten crontab gespeichert sind.

Mittels Cronjob werden in Magento unter anderem folgende, sich regelmäßig wiederholende Aufgaben gesteuert:

  • Die Google Sitemap wird regelmäßig neu generiert
  • Preisregeln (z.b. Sonderangebote) werden auf aktuellem Stand gehalten
  • Datenbank Logs werden aufgeräumt
  • Datenbankschlüssel werden aktualisiert
  • Newsletter werden versandt
  • Der Cache wird aktualisiert
  • uvm.

Ihr seht, Cronjobs sind für Magento nicht unwichtig. Ganz schnell sammeln sich im Cache-Ordner Gigabytes an Daten an, unter var/session/ liegen mehrere hunderdtausend Sessions, und diverse wiederkehrende Aufgaben werden einfach nicht abgearbeitet. Ich schätze gut die Hälfte der Magento Shops hat wohl nie einen Cronjob gesehen…

Zum Anlegen und bearbeiten der Cronjobs gibt es verschiedene Möglichkeiten:

  1. Sollte im Tool zur Serververwaltung die Möglichkeit bestehen, Cronjobs zu verwalten, richten wir dort einen Job ein, der die Datei cron.php direkt im Magento-Ordner alle 5 Minuten ausführt.
  2. Sofern ein Shell-Zugang bereit steht, sollte man diesen nutzen (das nötige Grundwissen vorausgesetzt).
    Dort wird mittels cron -u user -e die Crontab zur Bearbeitung geöffnet, wobei user hier mit dem Benutzer ersetzt werden muss, unter dem der Cronjob ausgeführt werden soll (der Apache User). Welcher User das ist, findet man ganz einfach heraus, indem man sich mit ls -l /pfad/zu/magento/varden Eigentümer der Magento-Verzeichnisse ansieht.

    Zur besseren Kenntlichmachung habe ich den User und die Gruppe in diesem Beispiel etwas deutlicher benannt.

    In die crontab wird folgende Zeile eingefügt:

    1
    */5 * * * * /pfad/zu/php -f /pfad/zu/magento/cron.php

    Hierbei sind die Pfade zur PHP Binary des Servers (auf der Konsole einfach mit whereis php zu finden) und der Pfad zu unserer Magento Installation anzupassen.

  3. Eine andere Möglichkeit ist es, den Hoster anzuschreiben und darum zu bitten, den Cronjob wie im oben beschriebenem Beispiel anzulegen.

Soviel als kleine Einführung zum Thema Cronjobs unter Magento. Mit Cronjobs kann man natürlich noch eine Menge mehr machen, zum Beispiel regelmäßige Produkt- oder Bestellexporte, usw.

Für den Fall, daß Interesse an tiefergehenden Informationen besteht, hier die Quellen, welche ich für den Artikel genutzt habe:
Magento Wiki – How to Set Up a Cronjob
Wikipedia – cron
FishPig – Magento Cron Jobs

Dieser Beitrag wurde unter Magento/eCommerce abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf Magento Cronjobs

  1. Good blog with great article topic.Thanks for this information.

  2. Ich würde gerne von XTC auf Magento umsteigen, aber irgendwie macht mir das alles „Angst“. Magento ist sehr umfangreich, aber auch sehr schön anzusehen. Hm…

  3. Brigitte sagt:

    Hallo Kai,

    ich traue mich mal, ich würde mich freuen, wenn du mir wenigstens so antworten würdest dass ich verstehe was ich falsch mache.
    Ich habe für´n Kumpel einen Magento Shop erstellt. Dort hat setzt er jeden Montag 4-5 Produkte mit Sonderpreisen ein, die montags drauf eigentlich sich von alleine in „Luft auflösen“ sollten, Was aber leider nicht passiert.
    Cronjob sieht wie folgt aus: 5 * * * * wget -O – -t 1 -q http://www.seineseite.de/cron.php.
    Ich habe den Hoster irgendwann mal gefragt, und er antwortete:

    Ich habe soeben den Grund gefunden, wiso der Cronjob nicht ausgeführt wird. Dieser
    benötigt mehr als 100MB Ram und wird desshalb abgebrochen.

    Feb 8 11:34:02 srv89 lfd[3639]: *User Processing* PID:3635 Kill:0 User:militae1
    VM:128(MB) EXE:/usr/bin/php CMD:/usr/bin/php /home/militae1/public_html/cron.php

    Bitte kontaktieren Sie Ihren Programmierer und fragen Sie dort nach, ob das
    wirklich korrekt programmiert ist. Denn 128MB Ram ist sehr viel für eine
    Scriptausführung.

    Programmiert habe ich aber nichts, kannst du mir auf die Sprünge helfen?

One Trackback/Pingback for Magento Cronjobs

  1. Lesetipps KW33 | Magento, RedDot, Wordpress - webguys.de

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.