GNU/Linux >> Linux Esercitazione >  >> Linux

Come silenziare completamente un Cronjob in /dev/null/?

Sul mio Ubuntu-Desktop e sul mio debian-server ho uno script che deve essere eseguito ogni minuto (uno script che richiama il minute-tic del mio browsergame spaziale online).

Il problema è che sui derivati ​​debian cron sta registrando su /var/log/syslog ogni volta che viene eseguito. Finisco per vedere ripetuto il messaggio che è stato eseguito più e più volte in /var/log/syslog :

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)

So che per sopprimere l'output di un programma posso reindirizzarlo a /dev/null , ad esempio per nascondere tutti i messaggi di errore e di avviso da un programma posso creare una riga in crontab come questa

* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null

Ma vorrei eseguire un cronjob ed essere sicuro che tutto l'output o gli errori generati vengano reindirizzati a NULL, quindi non genera alcun messaggio nel syslog e non genera alcuna e-mail

EDIT:
esiste una soluzione per reindirizzare i cron-log in un registro separato come proposto qui modificando /etc/syslog.conf

Ma lo svantaggio è che TUTTO l'output di tutti i cronjob viene reindirizzato.

Posso in qualche modo reindirizzare solo un singolo cronjob a un file di registro separato? Preferibilmente configurabile all'interno di cron.hourly file stesso.

Risposta accettata:

Fai la linea in questo modo:

* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null 2>&1

Questo catturerà sia STDOUT (1) che STDERR (2) e li invierà a /dev/null .

MAILTO

Puoi anche disabilitare l'e-mail impostando e quindi reimpostando il MAILTO="" che disabiliterà l'invio di eventuali email.

Esempio

MAILTO=""
* * * * *       root    /usr/local/sbin/mycommand.sh > /dev/null 2>&1

MAILTO="[email protected]"
 * * * * *      root    /usr/local/sbin/myothercommand.sh

Messaggi aggiuntivi

Spesso riceverai i seguenti tipi di messaggi in /var/log/syslog :

Nov 11 08:17:01 manny CRON[28381]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Queste sono semplicemente notifiche tramite cron che è stata eseguita una directory di cronjobs. Questo messaggio non ha nulla a che fare direttamente con questi lavori, proviene invece da crond demone direttamente. Non c'è davvero nulla che tu possa fare al riguardo e ti incoraggio a non disabilitarli, dal momento che sono probabilmente l'unica finestra che hai sulle vicende di crond tramite i registri.

Se sono molto fastidiosi per te, puoi sempre indirizzarli a un file di registro alternativo per eliminarli dal tuo /var/log/syslog file, tramite il /etc/syslog.conf file di configurazione per syslog .


Linux
  1. Quando usare /dev/random vs /dev/urandom?

  2. Come mappare il dispositivo /dev/sdX e /dev/mapper/mpathY dal dispositivo /dev/dm-Z

  3. Cosa sono i file /dev/zero e /dev/null in Linux

  4. Come codificare in base64 /dev/random o /dev/urandom?

  5. Come si scambia /dev/sda con /dev/sdb?

DD da /dev/zero a /dev/null... cosa succede realmente

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

kernel:disabilitare /dev/kmem e /dev/mem

echo o print /dev/stdin /dev/stdout /dev/stderr

Perché sono necessari < o > per usare /dev/tcp

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?