Crontab per php anlegen

  • Moin!

    Ich habe folgendes Problem:
    Ich habe meinen RPi als Webserver eingerichtet und möchte per php einen Crontab anlegen.
    Ich habe wie folgt ein Script angelegt:

    [code=php]<?php
    exec('echo " 0-59 * * * * sudo gpio -g write 17 1"| crontab -');
    ?>[/php]

    Ich möchte an diesem Beispiel also zu jeder Minute, dass die an GPIO 17 angeschlossene LED eingeschaltet wird.
    Es wird leider nicht ausgeführt. Muss ich noch Rechte vergeben, oder warum passiert nichts?
    Der Cronjob scheint gar nicht erst angelegt zu werden.

    Grüß
    Henning

  • Danke für eure schnellen Antworten!

    Ich habs überprüft. Der Webserver läuft als 'www-data'
    Wie lasse ich den Webserver denn unter dem User "pi" laufen? Bzw. wie kann ich das php script als "pi" den cronjob anlegen?

    Mit dem ganzen Pfad hatte ich es auch schon probiert, hat leider nicht geholfen.

    Einmal editiert, zuletzt von Bauer1 (8. März 2016 um 17:30)

  • Ein "man crontab" gibt folgendes zurück:

    Code
    SYNOPSIS
           crontab [-u user] file
           crontab [-u user] [-l | -r | -e] [-i] [-s]
    ...
    ...
    -u     Append  the  name  of  the user whose crontab is to be tweaked.  If this option is not given, crontab examines "your" crontab, i.e., the crontab of the person executing the command

    Also müsste deine Zeile ungefähr so aussehen:

    Code
    exec('echo " * * * * * sudo /vollständiger/Pfad/zu/gpio -g write 17 1"| crontab -u pi -');

    Der User pi sollte eigentlich die Berechtigung für die GPIOs haben.

    Anfragen ausserhalb des Forums (Mail o.ä.) werden ignoriert!

  • Nein, es soll nur zu Testzwecken jede Minute starten, damit ich nicht lange warten muss um es auszuprobieren.

    Es funktioniert allerdings auch dann nicht, wenn ich direkt über crontab -e den Befehl eintrage.

    Laut log wird der Cronjob zwar ausgeführt, aber komischerweise tut sich nichts.. kann ich irgendwie genauere Informationen aus dem Logfile raussuchen?

    wenn ich direkt in die Konsole

    Code
    gpio write 0 1

    eingebe funktioniert alles tadellos.
    Gebe ich es als

    Code
    * * * * * gpio write 0 1

    in die crontab -e ein läuft es nicht. Auch nicht, wenn ich einen Benutzer eintrage. Ich bin am verzweifeln...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!