Ankündigung

Einklappen
Keine Ankündigung bisher.

Cronjob Python3 Skript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cronjob Python3 Skript

    Hallo liebe Community,

    ich bräuchte Unterstützung beim Anlegen eines Cronjobs für die tägliche Ausführung (um 19:00) eines Python Skripts.
    Das Skript liegt unter: /opt/loxberry/webfrontend/legacy --> test.py
    Den Cronjob habe ich unter angelegt: /opt/loxberry/system/cron/cron.d --> crontest

    Inhalt des Cronjobs:
    Code:
    SHELL=/bin/sh
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=""
    #
    # m h dom mon dow user command
    0 19 * * * loxberry /usr/bin/python3 /opt/loxberry/webfrontend/legacy/test.py
    Anmerkung: Habe schon verschiedene Aufrufe versucht, z. B. mit / ohne Pfadangabe von python3.

    Die Anmerkungen (UNIX Line ending) unter https://www.loxforum.com/forum/projektforen/loxberry/allgemeines-aa/163613-cron-job-f%C3%BCr-eignes-skript und https://www.loxwiki.eu/display/LOXBE...ob+on+LoxBerry habe ich versucht zu beherzigen, leider ohne Erfolg.

    Daher wäre es super wenn mir jemand einen Tipp geben könnte.

    Sonstige Infos:
    - Loxberry v1.4.3
    - Cronjob Oktal 0777 / Owner: root.
    - Python-Skript Oktal 0755
    - Skript läuft über einen normalen Shell-Aufruf ohne Probleme durch.

    Danke für die Hilfe.

    Viele Grüße
    JoSom

  • #2
    Der Job braucht exakt 755 permission.
    Wenn jemand anderer als root den Cron ändern darf, führt crond ihn nicht aus.


    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar


    • Christian Fenzl
      Christian Fenzl kommentierte
      Kommentar bearbeiten
      Oh, das ist im Artikel unklar. Schedule _und_ Script brauchen 755. Könntest du das im Artikel gleich anpassen, geht am Handy nicht gescheit.

  • #3
    Mit der alten Datei hat es nicht funktioniert.
    Habe dann nochmal eine neue Datei angelegt, direkt über den nano-Editor beschrieben und die 755 vergeben, damit hat es geklappt. Vielen Dank!

    Wiki-Artikel habe ich entsprechend angepasst:
    "The script and the schedule need exactly the following permission: chmod 755 <filename>..."

    Kommentar


    • #4
      Moin zusammen,
      hi Christian Fenzl

      ich möchte im Prinzip das gleiche, nur ein Python-Skript nach einem Reboot ausführen.

      So?

      Code:
      SHELL=/bin/sh
      PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
      MAILTO=""
      #
      # m h dom mon dow user command
      0 0 * * * loxberry /usr/bin/python3 /usr/local/bin/run-mihome.py
      Die Datei habe ich im Verzeichnis loxberry\system\cron\cron.reboot abgespeichert, aber nix passiert.

      Weiterer Input: Über die Shell kann ich das Skript ausführen, muss dazu aber "su -" ausführen (root).

      Hilfe!

      Danke euch vorab!

      Kommentar


      • #5
        So? Nein 😉

        Bitte nochmal den Wiki-Artikel. lesen:
        ENTWEDER
        - in cron.d, dort muss ein CRONJOB-File liegen (so wie deins),
        ODER
        - in cron.reboot, dort muss das Script SELBST liegen, mit korrektem Shebang und ohne File Extension.

        In einem CRONTAB-File gehört, wenn's bei Systemstart ausgeführt werden soll, statt der Zeit ein @reboot hin (also statt der Zahlen und Sternchen)
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar


        • #6
          Danke 😉,
          hatte mit sowas noch nicht wirklich was zu tun. Viele böhmische Dörfer....

          Also würde ich bei Variante 1 das so machen:
          Code:
          @reboot loxberry /usr/bin/python3 /usr/local/bin/run-mihome.py
          Oder bei Variante 2 im Skript selbst am Anfang:
          Code:
          #!/usr/bin/env python3
          ?

          Kommentar


          • Sebastian
            Sebastian kommentierte
            Kommentar bearbeiten
            Äh? Bei beiden Varianten?

            Wie mache ich das? 😕

          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            chown und chmod Lt. Wikiartikel

          • Sebastian
            Sebastian kommentierte
            Kommentar bearbeiten
            OK, danke. Verstanden.

            Und die Permissions weise ich über die Shell zu?

        • #7
          Moin,

          sorry, es klappt irgendwie nicht.
          Ich habe folgendes gemacht:

          Variante 1:
          • den Befehl
            Code:
            @reboot root /usr/bin/python3 /usr/local/bin/run-mihome.py
            in eine Datei ohne Dateiendung in den Ordner cron.d eingefügt
            • sowohl über nano als über Windows-> Notepad++ und Unix-Line ending
            • auch mal mit "loxberry" als user im Code probiert
          • über die Shell dann ausgeführt:
            Code:
            	root@loxberry:~# nano /opt/loxberry/system/cron/cron.d/mi-home
            	root@loxberry:~# chown root:root /opt/loxberry/system/cron/cron.d/mi-home
            	root@loxberry:~# chmod 755 /opt/loxberry/system/cron/cron.d/mi-home
            	root@loxberry:~# chmod 755 /usr/local/bin/run-mihome.py
          Funzt nicht...

          Variante 2:
          • Den "Shebang"
            Code:
            #!/usr/bin/env python3
            der Datei run-mihome.py vorangestellt.
          • über die Shell ausgeführt:
            Code:
            	chown loxberry:loxberry /opt/loxberry/system/cron/cron.reboot/run-mihome.py
            	chmod +x /opt/loxberry/system/cron/cron.reboot/run-mihome.py
          Funzt nicht....

          Wahrscheinlich ist es bei mir ein Layer-8-Problem...
          Bitte nochmals um Hilfe, danke im Voraus!

          Gruß Sebastian

          Kommentar


          • #8
            Für Variante 2 darf das Script keine File Extension haben.

            Bist du absolut sicher, dass der Aufruf nicht funktioniert, und nicht etwa das Python-Script abbricht, weil Zb das Netzwerk noch nicht verfügbar ist? Cron in cron. d nimmt da keine Rücksicht.
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar


            • #9
              Zitat von Christian Fenzl Beitrag anzeigen
              Für Variante 2 darf das Script keine File Extension haben.

              Bist du absolut sicher, dass der Aufruf nicht funktioniert, und nicht etwa das Python-Script abbricht, weil Zb das Netzwerk noch nicht verfügbar ist? Cron in cron. d nimmt da keine Rücksicht.
              Die Extension hatte ich entfernen, war ein Tippfehler. Hab alles so gemacht wie sein soll, glaube ich.

              Wie kann ich das prüfen, ob das Netzwerk verfügbar ist?

              Gesendet von meinem Mi 9 Lite mit Tapatalk

              Kommentar


              • #10
                Das weiß ich nicht, wie das in einem Python -Script geht.
                Mach oben irgendwo ein sleep 120 Sekunden rein, dann ist das Netz sicher up.


                Oder probier mal
                Code:
                SHELL=/bin/bash
                PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
                MAILTO="" # #
                @reboot root sleep 60 && echo $(date) > /tmp/mihome.log && /usr/bin/python3 /usr/local/bin/run-mihome.py
                Dann kannst du nachher schauen, ob das File angelegt wurde.

                Wenn du bei MAILTO deine E-Mail Adresse angibst, und du in LoxBerry Mail konfiguriert hast, bekommst du ggf. eine Fehlermeldung von Cron, wenn ihm was nicht passt.
                Zuletzt geändert von Christian Fenzl; 06.01.2021, 10:37.
                Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                Kommentar


                • #11
                  Keine Ahnung warum, aber es geht auf einmal.
                  Ich habe den Code von dir genommen... dann gings erst nicht.
                  Jetzt nochmal die Permissions verteilt, geht!

                  Danke vielmals! :-)

                  Kommentar


                  • #12
                    Hey leider geht der Link zum Wiki Artikel nicht mehr habe jetzt schon alles probiert aber er startet nicht habe die Datei emqtt.py hier liegen /opt/loxberry/webfrontend/legacy/emqtt.py
                    Wenn ich das händisch ausführe läufts hätte jetzt im cron.reboot über nano die Datei emqtt gemacht mit folgenden Inhalt

                    SHELL=/bin/bash
                    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
                    MAILTO="" # #
                    @reboot root sleep 60 && echo $(date) > /tmp/emqtt.log && /usr/bin/python3 /opt/loxberry/webfronted/legacy/dahua/scripts/emqtt.py

                    Dann habe ich noch folgende Befehle ausfegührt

                    chown root:root /opt/loxberry/system/cron/cron.reboot/emqtt
                    chmod 755 /opt/loxberry/system/cron/cron.reboot/emqtt

                    Hab ich was übersehen... Sthe komplett auf der Leitung
                    Loxone: so ziemlich alles was es gibt
                    Loxberry: Alexa<->Lox, CamStream4Lox, FHEM, MQTT Gateway, Weather4Loxone, Zigbee2Mqtt
                    Other: Node-Red, IObroker, Zehnder Comfoair 350, Tasmota, usw.

                    Kommentar


                    • #13
                      Soooo schwer ist der neue Link nicht zu finden...

                      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                      LoxBerry - Beyond the Limits

                      Kommentar


                      • #14
                        Den hatte ich vorher auch gefunden dachte es gäbe da noch einen anderen dann bin ich einfach zu blöd..
                        Loxone: so ziemlich alles was es gibt
                        Loxberry: Alexa<->Lox, CamStream4Lox, FHEM, MQTT Gateway, Weather4Loxone, Zigbee2Mqtt
                        Other: Node-Red, IObroker, Zehnder Comfoair 350, Tasmota, usw.

                        Kommentar

                        Lädt...
                        X