cron Befehl wird nicht ausgeführt

  • Ich habe die crontab bearbeitet und zwei Befehle geschrieben. Der erste Befehl wird ausgeführt. Der zweite soll eigentlich die produzierte Strommenge meines Fronius Wechselrichters IG-TL an PVoutput.org weitergeben. Dies funktioniert aber nicht.


    Hier die Befehlszeilen:


    #!/usr/bin/bash


    # m h dom mon dow command
    2 17 * * * sudo /home/pi/fslurp/fslurp -r all -d , -p /dev/ttyUSB0 >> /mnt/back$
    */5 * * * * sudo /home/pi/fslurp/fslurp2pvoutput.sh


    Kann mir jemand helfen?

  • dazu 2 Fragen:


    - welches Betriebssystem benutzt du? Bei Rasbian ist die bash in /bin und nicht in /usr/bin.


    - sudo funktioniert bei dir ohne Passwort?


    Vielleicht den cron-job als root anlegen, dann ist sudo nicht notwendig



    Edit:
    Noch eine Frage:


    Ist dies der Eintrag in der crontab?
    Die Zeile mit der bash ist dort ungewöhnlich.


    Noch ein Edit, weil noch eine Frage:


    In den beiden Scripten verwendest rufst du Programme mit oder ohne Pfad auf?
    Zur Sicherheit dort auch Pfade verwenden - beliebte Fehlerquelle bei Scripten, die über cron aufgerufen werden.

    Keep it simple [,&] stupid

    Edited once, last by kungel ().

  • Ich bin absoluter Neuling und habe aus verschiedenen Foren die Info mit der bash Zeile gelesen.
    Als Betriebssystem habe ich Raspian.


    Das ausführen der Skripte mit Sudo habe ich von Anfang an so gemacht. Nach deinem Hinweis, habe ich mal probiert, die Skripte manuell ohne Sudo auszuführen. Es klappt. :thumbs1:


    Ich habe nun die crontab überarbeitet und werde jetzt prüfen, ob beide Befehle in Zukunft ausgeführt werden.

  • Ich habe immernoch das Problem, dass der zweite Skript nicht durchgeführt wird. Die Tageswerte werden gespeichert.
    Wenn ich an der Konsole den Befehl eintippe funktioniert es.


    Hilfe!

  • Wie sieht denn deine jetzige crontab aus? Am besten kopierst du mal 1:1 die Ausgabe von "crontab -l"


    Das zweite Skript funktioniert auch ohne sudo in der Kommandozeile?

  • grep -i cron /var/log/syslog


    Stehen da Fehler drin? Permissions oder sonst was? Wenn Crontabs für alle beschreibbar sind weigert sich Cron, da sie jeder bearbeiten könnte und so Dinge mit Rechten ausführen könnte die er nicht haben sollte.
    Das wäre eine Möglichkeit.


    Wo liegt Deine Crontab Datei eigentlich?

  • Wenn nur der 2. Befehl (den er im ersten Beitrag gepostet hat) nicht funktioniert, dann ist mit dem crontab-file alles in Ordnung, aber nicht mit der crontab Zeile, also dem jeweiligen Eintrag im crontab-file ...


    Das erste was mir da sofort auffällt ist das kein Interpreter angegeben wird, also stellt sich mir die Frage: ist das Script ausführbar und ein Shebang vorhanden?


    Es gäbe 2 Möglichkeiten das nun zu lösen:

    • Nach dem "sudo" Befehl noch den Interpreter "bash" einfügen (der den Inhalt der Datei verarbeiten soll/kann) sodass der crontab Eintrag dann so aussähe: */5 * * * * sudo bash /home/pi/fslurp/fslurp2pvoutput.sh
    • Sicherstellen das ganz oben in der ersten Zeile im Script fslurp2pvoutput.sh der Shebang angegeben ist: #!/bin/bash
      Und das Script Ausführ-Rechte hat: chmod +x fslurp2pvoutput.sh