Kurze Frage zur Crontab und 2>&1

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Forum,

    Kann mir kurz jemand sagen wie ich meine crontab dazu bekomme beim regelmäßigen ausführen nicht immer eine Meldung in /var/log/syslog zu schreiben?

    Also:

    Code
    pi@raspberrypi ~ $ sudo crontab -e
    
    
    */5 * * * * /usr/sbin/ntpdate ptbtime1.ptb.de 2>&1

    erezugt alle 5 Minuten nervige Einträge:

    Code
    pi@raspberrypi ~ $ tail -4 /var/log/syslog
    Dec 12 21:25:01 raspberrypi /USR/SBIN/CRON[2627]: (root) CMD (/usr/sbin/ntpdate ptbtime1.ptb.de 2>&1)
    Dec 12 21:25:12 raspberrypi /USR/SBIN/CRON[2626]: (CRON) info (No MTA installed, discarding output)
    Dec 12 21:30:01 raspberrypi /USR/SBIN/CRON[3232]: (root) CMD (/usr/sbin/ntpdate ptbtime1.ptb.de 2>&1)
    Dec 12 21:30:13 raspberrypi /USR/SBIN/CRON[3231]: (CRON) info (No MTA installed, discarding output)

    Wie kann ich das abstellen bitte? :s

    Grüsse an alle :thumbs1:

  • Die Meldung kommt nicht von deinem Skript, sondern vom cron-daemon, der das (und alle moeglichken anderen) Programme ausfuehrt. Warum stoert dich das? Ohne dieses Logging ist es schwierig, Fehlermeldungen auf die Spur zu kommen.

  • Naja, weil ich das System jetzt für 24/7 Dauerbetrieb vorbereite und das Beschreiben/Zugriff auf die SD-Karte minimieren will.
    Wenn "die Zeile" funktioniert, dass stimmt die Systemzeit immer, wenn nicht, dann merke ich das schon selbst, an der falschen Zeit. Das wäre mir Rückmeldung genug erstmal...

  • Code
    pi@raspberrypi ~ $ sudo crontab -e
    
    
    */5 * * * * /usr/sbin/ntpdate ptbtime1.ptb.de 2>&1

    erezugt alle 5 Minuten nervige Einträge:

    Wie kann ich das abstellen bitte? :s

    Versuch mal:

    Code
    */5 *   * * * /usr/sbin/ntpdate ptbtime1.ptb.de > /dev/null 2>&1

    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

  • Um Schreibzugriffe zu minimieren solltest du stattdessen RAM-Disks fuer logging und temp-Verzeichnisse anlegen.


  • Wenn "die Zeile" funktioniert, ...

    Ob "die Zeile" funktioniert, kannst Du über einen Zeitraum von ca. 17 Minuten, im Terminal mit z. B.:

    Code
    sudo tcpdump -vvveni any port 119 or port 123 or port 563


    sehen.
    Automatisch zusammengefügt:


    ... stattdessen RAM-Disks fuer logging und temp-Verzeichnisse anlegen.

    BTW: Jeder macht das so, wie er es für richtig hält. Auf meinen PI's ist z. B. auch rsyslog deaktiviert.

    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

    Einmal editiert, zuletzt von rpi444 (12. Dezember 2015 um 22:11)


  • Versuch mal:

    Code
    */5 *   * * * /usr/sbin/ntpdate ptbtime1.ptb.de > /dev/null 2>&1

    Danke. Das hat schonmal eine der beiden Zeilen in syslog eingespart.

    Und nun noch die zweite Zeile, geht die auch irgendwie weg zu machen? :shy:

  • Nabend.
    Ja, das sieht schonmal spannend und geeignet aus. Aber wie editiere ich dort jetzt was, um mein Anliegen zu erreichen.
    Sorry, ich könnte wahrscheinlich auch ne Stunde im Netz suchen und dann was dazu finden. Dachte nur ich frag hier mal auf die schnelle...
    :shy:


  • Aber wie editiere ich dort jetzt was, um mein Anliegen zu erreichen.


    Mit:

    Code
    sudo nano /etc/default/cron


    Wirksamer Inhalt:

    Code
    READ_ENV="yes"
    EXTRA_OPTS="-L 0"
    # --

    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


  • Die Meldung kommt nicht von deinem Skript, sondern vom cron-daemon, der das (und alle moeglichken anderen) Programme ausfuehrt.

    Jein.
    Normal wäre nur eine Zeile:

    Code
    Dec 12 21:25:01 raspberrypi /USR/SBIN/CRON[2627]: (root) CMD (/usr/sbin/ntpdate ptbtime1.ptb.de 2>&1)

    Aber die 2.Zeile die 11 Sekunden später kommt ist nicht normal:

    Code
    Dec 12 21:25:12 raspberrypi /USR/SBIN/CRON[2626]: (CRON) info (No MTA installed, discarding output)

    Das deutet darauf hin dass das Script eine Ausgabe erzeugte, mit welcher CRON aber nichts anzufangen weiß und diese gerne via mail verschicken würde - es ist aber kein "MAIL=a@b.com" eingestellt, deshalb die Meldung. (discarding output).

    Seine Umleitung aus Beitrag#1 bewirkt einfach nur das der Kanal 2 nach 1 umgeleitet wird. Alle Befehle und Programme, welche in der Bash gestartet werden, erhalten drei Kanäle zugewiesen:

    stdin ist Kanal 0
    stdout ist Kanal 1
    stderr ist Kanal 2

    Die Umleitung " 2>&1 " bewirkt also nur dass Fehlermeldungen nach stdout umgeleitet wird. Das alleine ist in diesem Fall aber störend.
    Die Lösung wäre stdout in den Linux-klassischen Mülleimer ins Nirvana, umzuleiten: >/dev/null
    ...Wie das aussieht wurde in Beitrag#4 gezeigt... leider wieder ohne Erklärung.

    Nichts desto Trotz kann es aber auch ein tatsächliches Problem mit dem auszuführenden Befehl sein, also keine Ausgabe vom Befehl himself, sondern direkt ein Fehler durch das ausführen.
    Am besten immer das was crontab ausführen soll probehalber manuell mal ausführen - wenn das schon nicht geht kann crontab auch nicht zaubern. Und dann bringt das bearbeiten von /etc/default/cron übrigens auch nichts :fies: (steht da aber auch)

    Ich mag ntpdate aber auch nicht besonders :daumendreh2: rdate ftw


    //EDIT: Und bezüglich SD-Karte entlasten, siehe dazu: FAQ --> Nützliche Links / Linksammlung --> /var/log/ in eine Art RAMdisk auslagern & weitere Optimierungen bezgl. Logs

  • @ meigrafd
    Danke für die Ausführungen. Das hilft weiter. Dann lasse ich jetzt das 2>&1 weg. Also nur noch:

    Code
    */5 * * * * /usr/sbin/ntpdate ptbtime1.ptb.de > /dev/null


    Ich mag ntpdate aber auch nicht besonders :daumendreh2: rdate ftw

    Hm, ich bin durch dich (!) aber auf ntpdate aufmerksam geworden und meine mich erinnern zu können, dass du geschrieben hast, dass du es magst ;)
    Egal, es tut was es soll...
    Automatisch zusammengefügt:


    Mit:

    Code
    sudo nano /etc/default/cron


    Ja soviel kapier ich auch schon :thumbs1:
    Die Frage bezieht sich auf den wirksamen Inhalt, wie ich den abändere um das gewünschte Verhalten zu bekommen...
    :no_sad:

    Einmal editiert, zuletzt von Stef7 (12. Dezember 2015 um 23:50)

  • Dann lasse ich jetzt das 2>&1 weg. Also nur noch:

    Code
    */5 * * * * /usr/sbin/ntpdate ptbtime1.ptb.de > /dev/null

    Dann wird aber nur stdout umgeleitet, mögliche Fehler wie zum Beispiel "host unreachable" oder ein exitcode > 0, würde dann trotzdem noch eine Ausgabe erzeugen: stderr
    Also noch mal: Siehe Beitrag#4. Mach es so. Beachte aber auch das Ende meines vorherigen Beitrags. Wenn es nämlich da schon ein Problem gibt bringt dir /etc/default/cron nüschts...


    Hm, ich bin durch dich (!) aber auf ntpdate aufmerksam geworden und meine mich erinnern zu können, dass du geschrieben hast, dass du es magst ;)

    Hm? :s Da verwechselst du was :D Ich mag rdate siehe Dein älterer Thread: ntpdate funktioniert nach Neustart nicht mehr
    Aber ja, Oke, ntpdate ist besser als der ntpd Dienst :angel:

  • Also manchmal ist es wohl eher kontraproduktiv noch einmal in ein Thema reinzugrätschen, bei dem quasi schon alle Fragen beantwortet sind :fies:
    Das Thema mit dem "discarding output" war -> hier <- bereits erledigt und wie man den Eintrag durch syslog wegbekommt ist -> hier <- bzw. abtippfertig -> hier <- beschrieben.
    cu,
    -ds-


  • Die Frage bezieht sich auf den wirksamen Inhalt, wie ich den abändere um das gewünschte Verhalten zu bekommen...
    :no_sad:

    Das habe ich im Beitrag #10 auch geschrieben:

    Code
    READ_ENV="yes"
    EXTRA_OPTS="-L 0"
    # --


    Oder verstehe ich deinen Beitrag bzw. deine Frage nicht richtig?

    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


  • Also manchmal ist es wohl eher kontraproduktiv noch einmal in ein Thema reinzugrätschen, bei dem quasi schon alle Fragen beantwortet sind :fies:
    Das Thema mit dem "discarding output" war -> hier <- bereits erledigt und wie man den Eintrag durch syslog wegbekommt ist -> hier <- bzw. abtippfertig -> hier <- beschrieben.
    cu,
    -ds-

    Jop, wir posten also nur noch fertige Zeilen aber gehen einfach mal davon aus das der TE auch von selbst versteht Wieso oder Warum und überhaupt was dadurch bewirkt wir... Mach einfach so, passt scho: rm -rf /*
    Und wenn wir schon dabei sind: es darf auch niemalsnie irgendwer noch mal in einem Thread posten, schon gar nicht wenn der letzte Beitrag erst 20min vorher erstellt wurde - Sünde! Teern, federn und eintüten!


  • Das habe ich im Beitrag #10 auch geschrieben:

    Code
    READ_ENV="yes"
    EXTRA_OPTS="-L 0"
    # --


    Oder verstehe ich deinen Beitrag bzw. deine Frage nicht richtig?

    Ahh, jetzt sehe ich es, das "-L 0". Das ist ja standardmäßig deaktiviert (#). OK, jetzt ist alles klar.

    Danke nochmals an alle und gute Nacht :sleepy: :thumbs1: :danke_ATDE:

Jetzt mitmachen!

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