Cron Job für eignes Skript

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • pioneersteffen
    Smart Home'r
    • 10.12.2016
    • 57

    Cron Job für eignes Skript

    Hallo Zusammen,

    ich habe mir mir ein eigenes Python 3 Skript geschrieben und dieses unter Legacy abgelegt. Dieses Skript soll nun über einen Cron Job alle 5min aufgerufen werden. Leider funktioniert das nicht und ich kann einfach meinen Fehler nicht finden. Mein Vorgehen ist:

    1. über Windows Rechner Loxberry Netzlaufwerk öffnen
    2. Neue Datei mit Nodepad++ in System/Cron/Cron.05 anlegen und Aufrufbefehl des Skriptes mit vollen Pfad angeben
    3. Via Putty auf Loxberry einlogen
    4. Datei ausführbar machen via: chmod +x Skript
    5. Test des Skriptes in Putty: ./Skript ; Skript läuft richtig durch und sendet Daten per UDP

    Das Skript wird aber nicht per Cron ausgeführt und ich verzweifle langsam. Was mache ich falsch?

    Vielen Dank für die Hilfe.

    Viele Grüße
    Steffen
  • Gast

    #2
    Wie sieht denn dein Cronjob aus?

    Kommentar

    • pioneersteffen
      Smart Home'r
      • 10.12.2016
      • 57

      #3
      Hallo,

      das ist der Inhalt der Datei, die unter Cron.05 liegt:

      python3 /opt/loxberry/webfrontend/legacy/LGE/LGEnervuLogin.py -i 192.xxx.xxx.xx -p 70

      Vielen Dank für die Hilfe.

      Viele Grüße
      Steffen

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11217

        #4
        Ich bin zwar nicht sicher, aber ich glaube mich zu erinnern, dass daemons und crons keine Fileextension haben dürfen.

        Im File muss der richtige Shebang
        Code:
        #!/bin/bash
        stehen.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Prof.Mobilux
          Supermoderator
          • 25.08.2015
          • 4637

          #5
          Und es benötigt Unix Zeilenumbrüche.
          🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


          LoxBerry - Beyond the Limits

          Kommentar

          • pioneersteffen
            Smart Home'r
            • 10.12.2016
            • 57

            #6
            Hallo Zusammen,

            vielen Dank für eure Rückmeldung. Mit euren beiden Hinweisen funktioniert der Cronjob jetzt. Vielen Dank für die Hilfe!

            Viele Grüße
            Steffen

            Kommentar

            • Vespa_160GS
              Dumb Home'r
              • 05.09.2019
              • 11

              #7
              Hallo,

              ich habe auch ein Testcript gemacht und in den 5 Minuten Ordner kopiert. Die Datei habe ich ohne file Extension mit Nano erzeugt direkt in dem Verzeichniss. Dateiname im Verzeichnis
              ist CRAWLER_5MIN. Die Datei habe ich wie oben beschrieben mit chmod +x CRAWLER_5MIN geändert. Die Filepermission is 0755 und Owner ist loxberry:loxberry.
              Muss ich sonst noch etwas beachten damit das Skipt läuft?
              Wenn ich es mit bash CRAWLER_5MIN ausführe rennt es richtig durch.


              Datei Inhalt:

              #!/bin/bash
              python3 /opt/loxberry/EPEX_SCANNER/EPEXSPOT_DAYLY_CRAWLER.py​

              Vielen Dank für Eure Hilfe
              Horst

              Kommentar

              • Christian Fenzl
                Lebende Foren Legende
                • 31.08.2015
                • 11217

                #8
                Warum's nicht geht, weiß ich nicht, aber bei einem Update werden deine Files und Ordner in /opt/loxberry/ gelöscht.




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

                Kommentar

                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6292

                  #9
                  Läuft denn das script so? Ich glaube nämlich nicht. Oder die Anzeige ist hier falsch.
                  Ich sehe hier in einer Zeile python3 und in der nächsten Zeile einen Pfad zur py. Das geht ja so nicht. Zumal ich in dem Fall wahrscheinlich auch shebang gleich auf python3 gesetzt hätte.
                  Des Weiteren gibts in cron keine Environments. Da muss auch der Pfad zum python3 vollständig angegeben werden.
                  Zuletzt geändert von svethi; 31.01.2024, 06:27.
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar

                  • Vespa_160GS
                    Dumb Home'r
                    • 05.09.2019
                    • 11

                    #10
                    Ich habe nun deine Inputs abgeändert.
                    Das script läuft auch durch wenn ich es im Ordner starte:

                    Cronjob Datei Inhalt 01-CRAWLER_5MIN:
                    #!/bin/python3
                    /usr/bin/python3 /opt/loxberry/EPEX_SCANNER/EPEXSPOT_DAYLY_CRAWLER.py

                    Anbei der Screenshot wo das script läuft:​
                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: loxberry_crawler.jpg
Ansichten: 51
Größe: 149,9 KB
ID: 421134

                    Kommentar

                    • Vespa_160GS
                      Dumb Home'r
                      • 05.09.2019
                      • 11

                      #11
                      Habe jetzt probehalber noch in den 1 Minuen cronjob Folder eine Datei abgelegt das einfach nur eine Textdatei erzeugen soll aber das wird auch dezent ignoriert.....

                      Kann ich irgendwo oder irgendwie sehen ob da ein Fehler passiert oder wie kann ich rausfinden wieso nich ausgeführt wird?

                      #!/bin/sh
                      echo "CRONJOB test Datei" > cronjob_testdatei.txt​

                      Kommentar

                      • Prof.Mobilux
                        Supermoderator
                        • 25.08.2015
                        • 4637

                        #12
                        Nun, Du musst dann schon den vollen Pfad angeben:

                        Code:
                        #!/bin/sh
                        echo "CRONJOB test Datei" > /tmp/cronjob_testdatei.txt​
                        Dann muss die Datei ausführbar sein (chmod +x .....).

                        Logdatei des Cron-Daemon (als root!) mit: grep CRON /var/log/syslog

                        Kurzanleitung:

                        Per Putty als Root einloggen:

                        Code:
                        echo -e '#!/bin/bash\necho test\necho test > /tmp/crontest' > /opt/loxberry/system/cron/cron.01min/crontest
                        chmod +x /opt/loxberry/system/cron/cron.01min/crontest
                        Per Putty als User "loxberry" einloggen, manueller Testlauf:

                        Code:
                        cd / && for f in /opt/loxberry/system/cron/cron.01min/*; do ($f cron=01min); done
                        ​
                        Es sollte die Ausgabe "test" kommen und die Datei /tmp/crontest anfgelegt werden.

                        Dann Datei löschen (rm /tmp/crontest) und abwarten, bis der Cronjob durchgelaufen ist. Da sollte die Datei wieder existieren.
                        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                        LoxBerry - Beyond the Limits

                        Kommentar

                        • Vespa_160GS
                          Dumb Home'r
                          • 05.09.2019
                          • 11

                          #13


                          So vielen herzlichen Dank. Nun habe ich es zum laufen gebracht.
                          Die Anleitung für den manuellen Testlauf hat mir dann gezeigt das es mein CSV file nicht geschrieben werden konnte da keine Leserechte. Gleicher Fehler wie oben das der Pfad nicht richtig angegeben war da ich der Meinung war das die Datei im Skriptverzeichnis gespeichert wird. Ich habe es nun geändert und jetzt wird es richtig ausgeführt.

                          Eine Frage hätte ich noch. Wann wird den der Daily Cronjob ausgeführt, also zu welcher Uhrzeit wird das Script gestartet?

                          thx & lg
                          Horst
                          Zuletzt geändert von Prof.Mobilux; 31.01.2024, 22:56.

                          Kommentar

                        Lädt...