Pythonskript über PHP starten

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • @ 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.

    • Offizieller Beitrag

    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.

Jetzt mitmachen!

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