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
.