Tengo un script que debe ejecutarse cada minuto. El problema es que cron inicia sesión /var/log/syslog
cada vez que se ejecuta. Termino viendo algo como esto repetido una y otra vez en /var/log/syslog
:
Jun 25 00:56:01 myhostname /USR/SBIN/CRON[1144]: (root) CMD (php /path/to/script.php > /dev/null)
Estoy usando Debian
Mi pregunta es: ¿Hay alguna forma de decirle a cron que no escriba esta información en syslog cada vez?
Respuestas:
Puede enviar la salida de cron a una instalación de registro separada; agregue lo siguiente a su
/etc/syslog.conf
archivo:Recuerde agregar
/var/log/cron
a su/etc/logrotate.d/syslog
para asegurarse de que se gira, por ejemplofuente
Okay,
La solución a mi pregunta fue:
cambio
a
dentro
/etc/syslog.conf
y luego reiniciar syslogTambién me enviaron cron
/var/log/cron.log
según lo sugerido por Dave Cheney y le puse un logrotate. Mi solución con la sugerencia de Daves es óptima para mi situación porque:/var/log/syslog
esté lleno de mensajes cron/var/log/cron.log
que sea demasiado grande.fuente
rsyslog
Debian 8.0 Jessie, por lo/etc/rsyslog.conf
que debe editarse. Por cierto, las cadenas que se agregarán ya están allí de forma predeterminada, solo necesita descomentarlo (línea 63). Y/var/log/cron.log
ya está en el/etc/logrotate.d/syslog
, al igual que los encargados del paquete han leído este hilo.Is there any way I can tell cron not write this information to syslog every time
. Esta no es la respuesta.Cambiar / etc / default / cron
Por defecto, la línea EXTRA_OPTS es ""
fuente
En Ubuntu 14.04.5 (y probablemente en otros lugares) hay rsyslogd en lugar de syslogd. TranslucentCloud insinuó esto con Debian Jessie, pero la misma solución (pero cambiar rsyslog.conf en lugar de syslogd.conf) no parece funcionar en Ubuntu.
Parece que los valores establecidos en /etc/rsyslog.d/50-default.conf tendrán prioridad sobre los elementos establecidos en /etc/rsyslog.conf, por lo que es mejor hacer los cambios allí y luego reiniciar rsyslog y cron. De lo contrario, terminará con el comportamiento predeterminado del registro cron en syslog, más el registro cron en cronlog (pero no exclusivamente).
Primer par de líneas en mi /etc/rsyslog.d/50-default.conf:
¡Y voilá!
fuente
Simplemente resolví esto de una manera diferente, pero mi objetivo era ligeramente diferente. Quería descartar las entradas de registro cron que se generaron cuando se activó una ejecución para que mis discos duros pudieran dormir y no despertarse cada 5 minutos.
Puede hacer que el destino de un evento de registro en syslog.conf sea un comando de shell prefijándolo con la tubería, por lo que utilicé grep para descartar los que no quería. Asi que:
No he investigado, pero creo que debería ser posible enviar esas entradas de registro a otro objetivo si aún se desean.
fuente
En realidad, la solución 'mejor' (se podría afirmar) es una combinación de lo que sugirió @DaveCheney y lo que hizo eventualmente user7321 , más una tercera acción que recomendaría:
En su
/etc/syslog.conf
, la combinación de estas sugerencias cambia algo como lo siguiente:dentro:
Y no olvide forzar la recarga (o reiniciar) los servicios cron y syslogd, por ejemplo, usando:
Nota: Esto también funciona con rsyslogd.
fuente