Crontab führt Befehl nicht aus, obwohl ein manueller Programmaufruf funktioniert

  • Hi Leute,

    ich weiß, dass das Thema schon mehrfach angesprochen wurde, ich habe mehrere 100 Treffen in der Suche nach "crontab" bekommen und wollte die alten Threads nicht wieder aufmachen....

    Folgender Befeh in der crontab...

    * * * * * bash /home/pi/mqtt/mqtt1.sh >> /home/pi/mqtt/mqtt.log 2>&1

    ...soll das Skript "mqtt1.sh" aufrufen...tut es aber nicht. Ein "return" steht natürlich auch hinter der Zeile.

    Manuell klappt das mit und ohne den Vorsatz "bash" ohne weiteres - der Shebang ist also offensichtlich korrekt.

    Freue mich über eure Kommentare :)

    Gruß Rhobin

  • Crontab führt Befehl nicht aus, obwohl ein manueller Programmaufruf funktioniert? Schau mal ob du hier fündig wirst!

  • Welche/wessen crontab wird genutzt?

    Zeige bitte mal den Inhalt von /home/pi/mqtt/mqtt1.sh .

    Allgemeiner Hinweis:

    Absolute Pfade benutzen, immer und überall.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (3. März 2023 um 11:17)

  • wenn ich als User "pi" "crontab -e" aufrufe, dann gehe ich davon aus, dass es sich um die pi-crontab handelt.

    Was bringt Dir der Inhalt des Skriptes? Es ist ein einfache "Mosquitto_sub"-Abfrage. Wie gesagt: Manuell funktioniert das Skript einwandfrei. nur aus der crontab nicht und es wird auch keine Fehlermeldung in das mqqt.log geschrieben.

  • Hallo rhobin,

    wenn im Skript auch nur ein relativer Pfad versteckt ist, dann kann das Skript über die crontab gestartet nicht funktionieren...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo fred0815,

    Kann auch schon eine fehlernde Shebang im Script sein. Wenn dazu in der crontab nur bash steht, statt /bin/bash, kann das auch schon Ärger bereiten. Aber wenn das Script so geheim ist, kann man nur raten.

    nö, raten muss man hier nicht. Die Lösung mit "überall absolute Pfade verwenden" wurde mehrfach genannt. Muss nur konsequent ÜBERALL umgesetzt werden.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Was bringt Dir der Inhalt des Skriptes?

    Naja, evtl. kann man erkennen welche Ressourcen erforderlich sind bzw. zu welchen env-Variablen, das Script Zugang haben muss ... und bei Ausführung aus der crontab, diesen Zugang (noch) nicht hat, ... aber bei der manuellen Ausführung hat.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • habe mehrere 100 Treffen in der Suche nach "crontab" bekommen und wollte die alten Threads nicht wieder aufmachen....

    Es hätte gereicht einige davon zu lesen. Zu 90% dürfte immer die gleiche Lösung auftauchen: absolute Pfade.

    Was bringt Dir der Inhalt des Skriptes?

    Tja nun, du hast nach Hilfe gefragt.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • journalctl -u cron.service -n 20 --no-pager sagt was?

    -- Logs begin at Tue 2023-02-28 17:17:01 CET, end at Fri 2023-03-03 17:12:06 CET. --

    M▒r 03 17:10:01 raspberrypi4 CRON[22578]: pam_unix(cron:session): session closed for user pi

    M▒r 03 17:10:06 raspberrypi4 CRON[22576]: pam_unix(cron:session): session closed for user pi

    M▒r 03 17:11:01 raspberrypi4 CRON[22643]: pam_unix(cron:session): session opened for user pi by (uid=0)

    M▒r 03 17:11:01 raspberrypi4 CRON[22644]: pam_unix(cron:session): session opened for user pi by (uid=0)

    M▒r 03 17:11:01 raspberrypi4 CRON[22645]: (pi) CMD (python3 /home/pi/mqtt/mqtt1.py >> /home/pi/mqtt/mqtt_log.log 2>&1)

    M▒r 03 17:11:01 raspberrypi4 CRON[22646]: (pi) CMD (/home/pi/mqtt/mqtt1.sh >> /home/pi/mqtt/mqtt_log.log 2>&1)

    M▒r 03 17:11:01 raspberrypi4 sudo[22652]: pam_unix(sudo:session): session opened for user root by (uid=0)

    M▒r 03 17:11:01 raspberrypi4 sudo[22652]: pam_unix(sudo:session): session closed for user root

    M▒r 03 17:11:01 raspberrypi4 CRON[22644]: pam_unix(cron:session): session closed for user pi

    M▒r 03 17:11:06 raspberrypi4 CRON[22643]: pam_unix(cron:session): session closed for user pi

    M▒r 03 17:12:01 raspberrypi4 CRON[22698]: pam_unix(cron:session): session opened for user pi by (uid=0)

    M▒r 03 17:12:01 raspberrypi4 CRON[22699]: pam_unix(cron:session): session opened for user pi by (uid=0)

    M▒r 03 17:12:01 raspberrypi4 CRON[22700]: (pi) CMD (python3 /home/pi/mqtt/mqtt1.py >> /home/pi/mqtt/mqtt_log.log 2>&1)

    M▒r 03 17:12:01 raspberrypi4 CRON[22701]: (pi) CMD (/home/pi/mqtt/mqtt1.sh >> /home/pi/mqtt/mqtt_log.log 2>&1)

    M▒r 03 17:12:01 raspberrypi4 sudo[22707]: pam_unix(sudo:session): session opened for user root by (uid=0)

    M▒r 03 17:12:01 raspberrypi4 sudo[22707]: pam_unix(sudo:session): session closed for user root

    M▒r 03 17:12:01 raspberrypi4 CRON[22699]: pam_unix(cron:session): session closed for user pi

    M▒r 03 17:12:06 raspberrypi4 CRON[22698]: pam_unix(cron:session): session closed for user pi

Jetzt mitmachen!

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