ubuntuusers.de

Wie php mittels Skript ausführen?

Status: Gelöst | Ubuntu-Version: Ubuntu 7.04 (Feisty Fawn)
Antworten |

Norbert987

Anmeldungsdatum:
27. Dezember 2006

Beiträge: Zähle...

Hallo,

ich habe mir mittels php ein Skript geschrieben, welches alle 15 Minuten gestartet werden soll. Ich bin mir nicht ganz sicher, wie man das am besten realisiert. Ist es hier besser ein Skript in den Autostart zu setzen und dann mittels eine

for (; true; ) do 
	sleep 900 skript.php
done

regelmäßig aufzurufen oder eine Delay ins php Skript? Wäre nett, wenn ihr mir sagen könntet wie der Aufruf (skript.php bzw. Delay in php) heissen muss. Hab schon gesucht aber nicht brauchbares finden können ☹

Vielen Dank für eure Hilfe, Tobias

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Sowas trägt man dann in der Crontab ein.
Unter dem User wo du das ganze ausführen möchtest tippst du "crontab -e" ein. Danach kannst du z.B. soetwas erzeugen.

# m h  dom mon dow   command
*/15 * * * * /home/user/blub

Diese Zeile bedeutet jede 15 Min einmal /home/user/blub ausführen.

Norbert987

(Themenstarter)

Anmeldungsdatum:
27. Dezember 2006

Beiträge: 71

@Sid Burn: Hey, dass scheint mir eine elegantere Methode ☺ Danke. Leider klappt es nicht. Habe es genauso eingetragen (Pfad natürlich geändert), aber es passierte nichts. Wo soll die denn hingespeichert werden? Ist der standartord /tmp/crontab.btkray/crontab richtig? tmp kommt mir etwas komisch vor. Wäre toll, wenn du mir da helfen könntest. Kann es sein, dass als Aufruf sowas wie: /var/www/skript.php nicht reicht?

Blattlaus

Avatar von Blattlaus

Anmeldungsdatum:
29. März 2006

Beiträge: 1399

/tmp ging zwar Prinzipiell auch, jedoch ist /tmp für temporäre Daten gedacht und das ist dein Skript ja nicht, oder? Außerdem wird /tmp bei Ubuntu afaik nach dem Neustart geleert.

Ich würde vorschlagen du öffnest die /etc/cronttab als root und fügst eine Zeile ein die so aussiehst:

*/15 * * * *   benutzername /pfad/zum/skript

Das Skript muss ausführbar sein (chmod a+x /pfad/zum/skript) und muss in der ersten Zeile einen Shebang mit dem Interpreter, der die Datei ausführen soll enthalten. Aldo z.b. sowas:

#!/usr/bin/php


(Den Pfad zu deinem php Interpreter findest du mit "which php" heraus, dementsprechend anpassen)

dakkar

Avatar von dakkar

Anmeldungsdatum:
1. Juni 2006

Beiträge: 282

Ist halt die frage ob die globale crontab dafuer geeignet ist.
ausserdem sollte man die crontab nicht von hand editieren (wenn man nicht genau weiss was man tut)

dafür gibt es das commando crontab.

zB crontab -eu USERNAME = crontab des users USERNAME editieren. so wird noch eine syntaxpruefung durchgeführt.

und der spass landet dann in den userspezifischen crontabs (/var/spool/cron/crontabs)

dakky

Norbert987

(Themenstarter)

Anmeldungsdatum:
27. Dezember 2006

Beiträge: 71

Danke für eure Hilfe! Leider habe ich damit noch ein Problem:

Blattlaus hat geschrieben:

[...] muss in der ersten Zeile einen Shebang mit dem Interpreter, der die Datei ausführen soll enthalten. Aldo z.b. sowas:

#!/usr/bin/php


(Den Pfad zu deinem php Interpreter findest du mit "which php" heraus, dementsprechend anpassen)

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4687

Wohnort: Berlin

Der Kommentar muss da wirklich rein, damit Linux weiss womit das Skript ausgeführt werden muss. Wenn which php nichts bringt fehlt Dir wahrscheinlich das entsprechende Paket, php-cli oder so ähnlich.

Norbert987

(Themenstarter)

Anmeldungsdatum:
27. Dezember 2006

Beiträge: 71

Hab Interpreter nicht gefunden und hab es deshalb mit Lynx gelöst

lynx http://localhost/Download/skript.php -dump >> /dev/null

Vielen Dank für eure Hilfe ☺

Antworten |