26 votos

Puede cron escribir la salida de trabajo a un registro *por defecto* (en lugar de correo electrónico)?

Todos sabemos la forma correcta de manejar la salida de cron puestos de trabajo es redirigir a un archivo:

0 * * * * /bin/date >> /var/log/date.log 2>&1

Sin embargo, a veces los administradores son perezosos, olvidadizo, o ignorante, y no en esas redirecciones; en este caso, la salida del trabajo se envía un correo electrónico a $MAILTO o el propietario del usuario o de la root. En algunos de los cuadros que gestionar, el correo está deshabilitado, por lo que esta salida va a un agujero negro. Lo que me pregunto es, ¿hay alguna forma de saber cron para tomar cualquier salida de trabajo y en lugar de enviarla por correo, tirarlo en un catch-all archivo de registro en algún lugar? Estoy usando Ubuntu (8.04 pero la migración a 9.04). Hay una sugerencia de este tipo de solución en este azar de Google resultado, pero creo que el OP podría haber sido confundido acerca de cron de salida frente a la salida de cron puestos de trabajo.

Estoy abierto a las soluciones que requieren un poco de secuencias de comandos o la piratería, pero lo ideal es que esta sería una configuración de bits que podía establecer en algún lugar. No veo ninguna pista en man cron. Gracias!

3voto

Brian G Swanson Puntos 823

No estoy seguro de a qué te refieres exactamente cuando dices "mail está deshabilitada". Pero tal vez usted podría configurar un alias en /etc/aliases que se dirige a un tubo? Algo como

root: "|/bin/cat >> /var/log/cron.log"

3voto

Glomek Puntos 12183

La respuesta corta es no, cron mails para el propietario de la crontab por diseño. En el estándar de cron no hay manera de cambiar esto.

Lo mejor que puedo pensar es para configurar el MTA en los equipos en donde desea este comportamiento para el volcado de correo en un archivo de registro en lugar de un buzón de correo de usuario.

2voto

Adam Puntos 534

No creo que lo que estás pidiendo es realmente posible con Ubuntu (o cualquier otro) cron.

Aparte de geekmonkeys idea, también se podría establecer $MAILTO a una cuenta local y la ruta de salida a través de procmail.

1voto

geekmonkey Puntos 11

Nunca había oído hablar de tal configuración de cron, lo que me llevaría a la creación de scripts de la ruta.

Crear un cron job para patrullar /var/spool/cron/*, y anexar la redirección a cualquier trabajo que no tiene uno.

1voto

Justin Ellison Puntos 614

Otra opción sería crear un shell script llamado cron_wrapper o algo, y tienen simplemente hacer algo como esto:

#!/bin/sh

eval "$* >> /var/log/cronlog.log"
exit $?

Entonces, todos los de su crontabs sólo necesita algo como esto:

* * * * * /usr/local/bin/echo hola cron_wrapper

Nota: no he probado el código, es sólo una idea.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: