Auf meinem Ubuntu-Desktop und auf meinem Debian-Server habe ich ein Skript, das jede Minute ausgeführt werden muss (ein Skript, das den Minute-Tic meines Space-Online-Browsergames aufruft).
Das Problem ist, dass Cron auf Debian-Derivaten in /var/log/syslog
protokolliert jedes Mal, wenn es ausgeführt wird. Am Ende sehe ich wiederholt die Nachricht, dass sie immer wieder in /var/log/syslog
ausgeführt wurde :
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
Ich weiß, dass ich, um die Ausgabe eines Programms zu unterdrücken, es nach /dev/null
umleiten kann , um beispielsweise alle Fehler- und Warnmeldungen eines Programms auszublenden, kann ich eine solche Zeile in crontab erstellen
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
Aber ich möchte einen Cronjob ausführen und sicher sein, dass alle generierten Ausgaben oder Fehler an NULL weitergeleitet werden, sodass keine Nachrichten im Syslog und keine E-Mails generiert werden
BEARBEITEN:
Es gibt eine Lösung, um die Cron-Protokolle in ein separates Protokoll umzuleiten, wie hier vorgeschlagen, indem /etc/syslog.conf
geändert wird
Aber der Nachteil ist, dass dann ALLE Ausgaben aller Cronjobs umgeleitet werden.
Kann ich irgendwie nur einen einzelnen Cronjob in eine separate Protokolldatei umleiten? Vorzugsweise innerhalb der cron.hourly
konfigurierbar Datei selbst.
Akzeptierte Antwort:
Machen Sie die Zeile so:
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
Dadurch werden sowohl STDOUT (1) als auch STDERR (2) erfasst und an /dev/null
gesendet .
MAILTO
Sie können die E-Mail auch deaktivieren, indem Sie MAILTO=""
setzen und dann zurücksetzen Dadurch wird das Senden von E-Mails deaktiviert.
Beispiel
MAILTO=""
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
MAILTO="[email protected]"
* * * * * root /usr/local/sbin/myothercommand.sh
Zusätzliche Nachrichten
Häufig erhalten Sie die folgenden Arten von Nachrichten in /var/log/syslog
:
Nov 11 08:17:01 manny CRON[28381]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Dies sind einfach Benachrichtigungen über Cron, dass ein Verzeichnis von Cronjobs ausgeführt wurde. Diese Meldung hat nichts direkt mit diesen Jobs zu tun, sondern kommt vom crond
Dämon direkt. Es gibt nicht wirklich etwas, was Sie dagegen tun können, und ich würde Sie ermutigen, diese nicht zu deaktivieren, da sie wahrscheinlich das einzige Fenster sind, das Sie in das Geschehen von crond
haben über die Protokolle.
Wenn sie Sie sehr stören, können Sie sie jederzeit an eine alternative Protokolldatei weiterleiten, um sie aus Ihrem /var/log/syslog
zu entfernen Datei, über /etc/syslog.conf
Konfigurationsdatei für syslog
.