GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo silenciar completamente un cronjob a /dev/null/?

En mi Ubuntu-Desktop y en mi Debian-server tengo un script que debe ejecutarse cada minuto (un script que llama al minute-tic de mi juego de navegador espacial en línea).

El problema es que en los derivados de Debian, cron se registra en /var/log/syslog cada vez que se ejecuta. Termino viendo repetido el mensaje que se ejecutó una y otra vez en /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)

Sé que para suprimir la salida de un programa puedo redirigirlo a /dev/null , por ejemplo, para ocultar todos los mensajes de error y advertencia de un programa, puedo crear una línea en crontab como esta

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

Pero me gustaría ejecutar un cronjob y asegurarme de que todos los resultados o errores generados se canalicen a NULL, por lo que no genera ningún mensaje en syslog y no genera ningún correo electrónico

EDITAR:
hay una solución para redirigir los registros cron a un registro separado como el propuesto aquí cambiando /etc/syslog.conf

Pero el inconveniente es que TODOS los resultados de todos los cronjobs se redireccionan.

¿Puedo de alguna manera solo redirigir un solo cronjob a un archivo de registro separado? Preferiblemente configurable dentro del cron.hourly archivo en sí mismo.

Respuesta aceptada:

Haz que la línea sea esta:

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

Esto capturará STDOUT (1) y STDERR (2) y los enviará a /dev/null .

CORREO A

También puede deshabilitar el correo electrónico configurando y luego reiniciando el MAILTO="" lo que deshabilitará el envío de cualquier correo electrónico.

Ejemplo

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

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

Mensajes adicionales

Muchas veces obtendrá los siguientes tipos de mensajes en /var/log/syslog :

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

Estas son simplemente notificaciones a través de cron de que se ejecutó un directorio de cronjobs. Este mensaje no tiene nada que ver directamente con estos trabajos, sino que proviene del crond demonio directamente. Realmente no hay nada que puedas hacer al respecto, y te animo a que no los deshabilites, ya que es probable que sean la única ventana que tienes para ver lo que sucede en crond. a través de los registros.

Si son muy molestos para usted, siempre puede dirigirlos a un archivo de registro alternativo para sacarlos de su /var/log/syslog archivo, a través de /etc/syslog.conf archivo de configuración para syslog .


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿Qué tan portátiles son /dev/stdin, /dev/stdout y /dev/stderr?

  3. Cómo mapear dispositivos /dev/sdX y /dev/mapper/mpathY desde el dispositivo /dev/dm-Z

  4. ¿Qué son los archivos /dev/zero y /dev/null en Linux?

  5. ¿Cómo se intercambia /dev/sda con /dev/sdb?

¿Cómo codificar en base64 /dev/random o /dev/urandom?

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

¿Cómo crear/dev/null?

Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

kernel:deshabilitar /dev/kmem y /dev/mem

¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?