Entweder man ruft das Skript mit lynx auf, oder aber man nutzt das PHP CLI (
Command
Line
Interface).
Sollte Dir Aufschluss darüber geben, wo sich Deine PHP Binary befindet. Alternativ kannst Du auch einfach mal
in die Console hämmern und dann mit <Enter> (die dicke Taste irgendwo rechts auf der Tastatur) bestätigen oder aber
eingeben und 2x die <Tab>-Taste (links auf der Tastatur, eher länglich, in Form eines Rechtecks mit zwei entgegen gesetzten Pfeilen druff) drücken. Da sollte dann eine Liste von Auswahlmöglichkeiten erscheinen, wie z.B. diese hier:
Code:
php php5 php5.old php-config phpextdist phpize
Da Du scheinbar eine Plesk-Standardinstallation hast, wird PHP auch in der CLI Version vorliegen. Wenn nicht, musst Du PHP neu kompilieren (Gott bewahre...).
Nach diesen bahnbrechenden Erkenntnissen, können wir jetzt einfach mal die Hilfe der Binary anschauen. Das passiert miittels... na, Du ahnst es bereits... genau mit
Das bitte mit <enter> (wir erinnern uns, die große Taste rechts) bestätigen.
Unsere, um diese Uhrzeit schon müden Augen, werden die folgende Ausgabe sehen:
Code:
Usage: php [options] [-f] <file> [args...]
php [options] -r <code> [args...]
php [options] [-- args...]
-a Run interactively
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse <file>.
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r <code> Run PHP <code> without using script tags <?..?>
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
Aus diesem Wust an Informationen entnehmen wir mal
Jetzt wird das richtig spannend, gell?
Bevor wir außer Atem kommen, ein kleines Resumé des bereits Erlernten.
- PHP Binary finden
- Ein PHP-File parsen (zumindest theoretisch!)
Bevor wir uns jetzt mit wahnnsinns Geschwindigkeit einer Lösung nähern, wollen wir uns nochmal kurz die Cron anschauen. Wie ragey bereits festgestellt hat, ist das kein Wunschlosglücklich Apparat, der mit GET, SHOW, POST relativ wenig anfangen kann, denn der möchte Bash-Syntax sehen - "Oooooh nein, Console... ich kann keine Maus benutzen und alles ist so schwarz/weiß (manchmal bunt) und trotzdem so triste" - aber keine Angst meine treuen Ritter, wir werden uns durch das Dickicht der schwarz/weißen Consolenwelt schlagen und ein PHP-Skript gemäß Wunsch des Administrators (Für das Protokoll und Hamachi: Wer administriert hier eigtl. gerade wen?) um jeweils die gewünschte Uhrzeit oder sogar in gewünschten Abständen ausführen lassen.
Also auf geht's zur Cron... haha, weit gefehlt! Nein, erstmal wollen wir doch schauen, ob unser Skript geparsed wird und wir nicht etwas fürchterlich falsch machen. Also hämmern wir
Code:
php -f /path/to/our/precious/massive/enormous/world-entertaining/skript.php
in die Console und schauen mal, was da so passiert. Wenn ich das mit einer Datei namens test.php mache, die in meinem Home-Verzeichnis liegt, in der nur [highlight=PHP]<?php phpinfo(); ?>[/highlight] steht, dann kommt bei dem Aufruf
die bekannte PHP-Info Seite (ist jetzt jemand überrascht?), allerdings nicht in bunt, sondern - einige ahnten es bereits - in schwarz/weiß. Aber hey... es geht!
Nun wieder zurück zum Cronjob, der sehnsüchtig darauf wartet, erstellt zu werden. Die Crontab kann man tatsächlich auch mittels der Console verändern (jaha, das ist gar keine Erfindung von SWSoft!). Also tippen wir mal munter
in die triste Console ein. Dem folgt eine Auflistung aller bereits aktiven Cronjobs. Je nachdem, mit welchem User ihr das macht - wahrscheinlich root (ich spare mir alle Sicherheitsbelehrungen an dieser Stelle und schreibe einfach: macht das nicht mit root!) - kommen da einige mehr, oder einige weniger und ihr seid, je nachdem was die Environment-Variable EDITOR sagt, in einem Eurem heiß geliebten Editor.
Ah, was erzähle ich da... es wird wahrscheinlich vi(m) sein und die Welt geht unter! Aber nein, wir helfen Euch! Das ServerSupportForum erkennt die Not des geplagten Consolenusers und greift Euch unter die Arme.
Zuerst einmal wandert ihr mittels der Cursortaste bis in die letzte Zeile. Haargenau das machen, was in diesem Codeblock steht. Das einzige was variabel ist, ist die Zeit, wann das Skript ausgeführt werden soll. In diesem Beispiel alle 15 Min.
Code:
<o drücken>
*/15 * * * * /usr/local/php -f /full/path/to/desired/script.php
<ESC drücken>
<SHIFT + . drücken>
ZZ
<ENTER drücken>
Man verzeihe mir all den Zynismus in dieser Anleitung, aber a) wäre ein bisschen selber informieren, wie die Cron so funktioniert und b) Gehirnskasten einschalten sehr wünschenswert! Nicht zuletzt deswegen hat auf diese triviale Frage niemand von den alten Hasen geantwortet.
Sollten dem Skript Parameter übergeben werden müssen, musst Du googlen, wie das geht.