Wecker mit PHP (Funksteckdose und MP3) will nicht

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,
    seit Donnerstag sitze ich an einem Problem und kann es leider nicht alleine lösen. Ich hoffe, dass einige von euch mir helfen können.

    Ich möchte ein Wecker machen und dieser soll ganz simpel zu einer eigegebenen Zeit mit crontab den Befehl

    [code=php]shell_exec('echo "'.$mins.' '.$hour.' * * * sudo gpio -g write 17 1; sudo /home/pi/raspberry-remote/./send 01011 4 1" | crontab -');[/php]

    ausführen.

    Ich habe die suoders editiert und www-data für alle nutzer freigegeben. vergebens mit php kriege ich nichts zum laufen :( Ich bitte um eure Hilfe! Sonst komme ich morgens nicht aus dem Bett :D

    Vielen Dank!

    Einmal editiert, zuletzt von hunt33r (29. August 2015 um 16:23)

  • Also mal ungeachtet dessen das die Zeile sehr sehr komisch aussieht und so auch nicht wirklich funktionieren wird, rate ich zu folgendem:

    1. Forumsuche nach: sudo webscript
    ( FAQ --> Nützliche Links / Linksammlung --> Befehle über PHP mit root Rechten ausführen (sudo webscript) )

    2. [code=php]$success = file_put_contents("/tmp/cron", "'.$mins.' '.$hour.' * * * * /bin/bash /var/sudowebscript.sh send 01011 4 1");

    if ($success) { exec("crontab /tmp/cron", $output, $return_var); } else { echo "Error writing file /tmp/cron !<br/>"; } [/php]

    Dadurch wird die komplette crontab des ausführenden Benutzers durch den Datei-Inhalt von /tmp/cron ersetzt und aktiviert.


    PS: Gibt man den vollständigen/absolten Pfad zu einem Programm an brauch man kein " ./ " ... Also ' /home/pi/raspberry-remote/./send ' sollte so aussehen: /home/pi/raspberry-remote/send
    Ungeachtet dessen solltest du dir trotzdem 'sudo webscript' mal ansehen ;)

  • Vielen Dank für die Antwort.

    ich verstehe nicht, wieso:
    [code=php]shell_exec('echo "'.$mins.' '.$hour.' * * * sudo /home/pi/raspberry-remote/send 01011 4 1" | crontab -');[/php]
    nicht funktioniert aber
    [code=php]

    shell_exec('echo "'.$mins.' '.$hour.' * * * sudo omxplayer /home/pi/media/test.mp3" | crontab -')[/php]
    funktioniert. Der Aufbau ist doch gleich?

  • Was passiert wenn du manuell, in der Konsole, das eingibst:

    Code
    sudo -u www-data sudo /home/pi/raspberry-remote/send 01011 4 1


    PS: Bitte nicht Beiträge vollständig quoten, insbesondere wenn diese genau da drüber stehen. Danke.

  • Dann geht das Licht ein.
    Genau so wie bei [code=php]sudo /home/pi/raspberry-remote/send 01011 4 1[/php]

    Nur bei beim crontab-Befehl ist wohl ein Sytaxfehler.

    Finde leider keine Lösung... Bitte um weitere Hilfe :)

    Einmal editiert, zuletzt von hunt33r (30. August 2015 um 17:12)

  • Ich kenn Deine Scripte nicht und "crontab -" habe ich auch noch nicht benutzt. Überschreibt ggf. der eine Befehl den anderen Eintrag in der crontab?

    Ggf. solltest Du mal "/var/log/syslog" oder in "/var/log/messages" nachschauen ob dort Fehlermeldungen auftauchen, die mit dem Problem zu tun hätten könnten.

    Wie wäre es, wenn Du die Ausgaben von " /home/pi/raspberry-remote/send 01011 4 1 " in ein Log-File schreibst?
    * * * sudo /home/pi/raspberry-remote/send 01011 4 1 >> /var/log/meinlogging.txt 2>&1

    oder so ähnlich...

Jetzt mitmachen!

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