Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

tombejo:module:kalender:otk:cronjob

Anleitung Cron-Job für OTK-Abfrage

Cronjobs werden bearbeitet in: crontab -e -u www-data

taskstarter.php

Regelmäßig auszuführen ist das PHP-Skript taskstarter.php im Hauptverzeichnis des Tombejo-Programms. Dies wird in der Regel über einen Cron Job auf dem Linux-Server geregelt.

Das Skript benötigt ein Passwort zum starten des Programms um zu vermeiden, dass das Programm von unbefugten gestartet werden kann. Dieses muss in der Datei includes/settings/settigs.inc.php im Tombejo-Programm gesetzt werden indem dort die Zeile

cronpass = meinpasswort

hinzugefügt wird. „meinpasswort“ sollte durch ein sichereres Passwort ersetzt werden.

Das Programm sollte unter dem selben Benutzer gestartet werden, unter dem der Web-Server läuft (z.B. www-data). Grund ist, dass Tombejo den selben Code ausführt und in die selben Logdateien schreibt, wie das Script taskstarter.php . Wenn unterschiedliche Benutzer verwendet werden, kann es dabei zu Problemen mit Schreib- und Leserechten für Dateien kommen.

Für die Ausführung des Skripts gibt es dann prinzipiell zwei Möglichkeiten.

1. Über PHP CLI

Dazu muss bei den meisten aktuellen Linux Distributionen das Paket php5-cli installiert sein, wodurch ermöglicht wird, dass PHP-Skripte von der Kommandozeile gestartet werden können, z.B. „php taskstarter.php“ .

Soll der Cron-Job das Skript z.B alle 3 Minuten ausführen, würde die Zeile in der Cron-Konfiguration z.B so aussehen.

*/3 * * * * php /var/web/websites/tombejo.com/www/taskstarter.php pass=asdf

Hier die Erklärungen der einzelnen Elemente der Zeile:

*/3 * * * *„ verursacht dabei die Ausführung alle 3 Minuten. Ist die Ausführung alle 5 Minuten erwünscht, sieht dasn dann so aus: */5 * * * *

„php“ ist das Kommandozeilenprogramm zur Ausführung von PHP-Skripten. Eventuell muss der gesammte Pfad zum Programm angegeben werden, z.B. /usr/bin/php

“/var/web/websites/tombejo.com/www/taskstarter.php„ ist der absolute Pfad zum Skript taskstarter.php . Das muss entsprechend angepasst werden.

„pass=meinpasswort“ ist ein Name-Wert-Paar das an das PHP-Programm übergeben wird. „meinpasswort“ muss dabei durch das oben erwähnte Passwort aus der Datei includes/settings/settigs.inc.php ersetzt werden.

2. Aufruf über den Web-Server

Für dem Aufruf über den Webserver gibt es verschiedene Möglichkeiten. Das Prinzip aber besteht darin, taskstarter.php nicht von der Kommandozeile aufzurufen, sondern wie eine Webseite über den Webserver. Der Vorteil ist hier, dass es keine Rolle spielt unter welchem Benutzer der Cron-Job läuft. Die Url für diesen Aufruf sieht dann z.B. so aus:

http://tombejo.com/taskstarter.php?pass=meinpasswort

Dabei muss http://tombejo.com mit der korrekten URL-Adresse der Tombejo-Installation ersetzt werden. Auch muss „meinpasswort“ mit dem oben erwähnte Passwort aus der Datei includes/settings/settigs.inc.php ersetzt werden.

Für das Aufrufen der URL muss dann wiederum wir bei der PHP-CLI Version ein Cron-Job erstellt werden. Zum Aufruf der Webseite bieten sich verschiedene Programme an:

Ein Beispiel wäre z.B. „wget“, dass auch als Paket „wget“ in den meisten Linux-Distributionen zur Verfügung steht. In der Cron-Konfiguration sieht das für „wget“ dann z.B. so aus:

*/3 * * * * wget –spider http://tombejo.com/taskstarter.php?pass=meinpasswort

Das –spider verhindert dabei, das Speichern der von Webserver gelieferten Datei, die wir nicht benötigen. Möglicherweise muss der absolute Pfad zu „wget“ angeben werden, z.B /usr/bin/wget

Eine weitere Möglichkeit wäre CURL, was ebenfalls in den den meisten Linux-Distributionen als Paket „curl“ zur Verfügung steht. Der Aufruf ist fast der selbe wie für wget, z.B.

*/3 * * * * curl -s http://tombejo.com/taskstarter.php?pass=meinpasswort

Auch hier muss die URL angepasst werden und eventuell der absolute Pfad zu curl verwendet werden, z.B. /usr/bin/curl .

Im Grunde muss nichts anderes gewährleistet sein, als das das taskstarter.php Skript mit dem richtigen Parameter „pass“ aufgerufen wird und dieser Parameter muss in includes/settings/settngs.inc.php entsprechend konfiguriert sein.

tombejo/module/kalender/otk/cronjob.txt · Zuletzt geändert: 2016/12/20 10:04 (Externe Bearbeitung)