Pythonskript über PHP starten

  • @ cmeyer86: Bitte guck in den Beitrag über deinem vor letzten (Beitrag #17)


    Und merk dir fürs nächste mal wenn du in Threads anderer postest, zumindest die letzten 5 Beiträge zu lesen. Ansonsten bitte einen eigenen Thread erstellen, da das sonst etwas unhöflich dem Ersteller gegenüber is, da dieser Thread hier bereits als Erledigt markiert ist (nicht von dir).



    //EDIT: gMaN: Ein Eintrag würde reichen, einfach die erlaubten 'Befehle' mit einem Komma auflisten: www-data ALL=NOPASSWD: /var/www/LED_an.py,/var/www/LED_aus.py
    2 Einträge können Probleme verursachen

  • Hänge meine Frage mal hier an:


    Über ein Webinterface (PHP) möchte ich versch. Dinge einstellen können, welche in folgende Dateien abgespeichert werden sollen und per crontab automatisch starten lassen:
    - *.sh bzw. bash-scripts
    - *.conf
    - *.py


    Kann ich diese alle per Shebang ansteuern?


    Kann man auch irgendwie ein crontab per PHP erzeugen (Einstellungen per Webinterface werden ins crontab gespeichert)?

  • Hallo HimbeerPi(e) ,


    nur um deine Frage richtig zu verstehen und nachvollziehen zu können:


    Du möchtest ausführbare Dateien erstellen und diese dann einem Cron zuweisen? Hast du für das grundlegender Verständnis mal ein Beispiel, was in den Python/Bash/...-Dateien passieren soll?


    Ansonsten hätte ich mir mehr oder weniger das Problem etwas aufgedröselt:


    Einen "Parent"-Cronjob, der im kleinsten Takt (bspw. 1 Minute) immer wieder nachsieht, ob ein Job ausgeführt werden soll. Woher der das weiß? Im einfachsten Fall über eine Konfigurationsdatei, die du per PHP-Skript bearbeitest und automatisch erweiterst, wenn du ein Skript hinzufügst.


    Konfigurationsbeispiel

    Code
    # Cron-Takt;Skriptname
    5 * * * *; every_five.py
    3 * * * *; every_three.sh


    Dann müsste man womöglich nur noch die Berechtigungen der Dateien korrigieren, wenn diese bspw. von www-data angelegt werden.



    Aber das sind nur lose Ideen, ohne das Problem wirklich verstanden zu haben ;)

    .NET-, Unity3D-, Web-Dev.
    Mikrocomputer-Hobbyist.

  • Hallo HimbeerPi(e),


    Dateien mit root-Rechten vom User www-data ausführen/erstellen lassen? Geht, fördert aber nicht unbedingt die Systemsicherheit. Sieh Dir mal sudo webscript an.


    Thema crontab: Das ist auch möglich. Ich bin mir gerade nicht sicher ob der User www-data eine eigene crontab hat. Man kann aber auch crontab-Dateien im Verzeichnis /etc/cron.d erstellen. Dazu benötigt man allerdings ebenfalls root-Rechte.


    Renão: Die cronjobs sind so nicht ganz richtig wenn sie alle 5 bzw. 3 Minuten starten sollen. In Deinem Beispiel würden diese jede Stunde zur 5. bzw. zur 3. Minute starten. Richtiger ist:


    Code
    # Cron-Takt;Skriptname
    */5 * * * *;  every_five.py
    */3 * * * *;  every_three.sh


    Aber das sind nur lose Ideen, ohne das Problem wirklich verstanden zu haben


    Dem ist nichts hinzuzufügen! ;)


  • Ich bin mir gerade nicht sicher ob der User www-data eine eigene crontab hat.


    Ja ;)


    Seine Frage finde ich auch etwas seltsam bzw zu wenig Informationen... Aber generell kann man selbstverständlich mit PHP Dateien erzeugen (in einem Verzeichnis in dem "www-data" das Recht dazu hat oder ihm über sudo gegeben wird), mit einem Shebang verstehen, ausführbar machen und dann von crontab ausführen lassen...


    Du solltest aber unbedingt einen eigenen Thread erstellen - fremde Threads für sein individuelles Anliegen zu kapern ist unhöflich und schürt Chaos. Und in deinem Thread dann bitte genauer beschreiben was genau du vor hast.