Todos sabemos que la forma correcta de manejar la salida de los trabajos cron es redirigirla a un archivo:
0 * * * * /bin/date >> /var/log/date.log 2>&1
Sin embargo, a veces los administradores son vagos, olvidadizos o ignorantes y no ponen esos redireccionamientos; en este caso, la salida del trabajo se envía por correo a $ MAILTO o al usuario propietario o root. En algunos de los cuadros que administro, el correo está deshabilitado, por lo que esta salida entra en un agujero negro. Lo que me pregunto es, ¿hay alguna forma de decirle a cron que tome cualquier salida de trabajo y, en lugar de enviarlo por correo, lo arroje a un archivo de registro general en alguna parte? Estoy usando Ubuntu (8.04 pero migrando a 9.04). Hay una pista de tal solución en este resultado aleatorio de Google , pero creo que el OP podría haber estado confundido sobre la salida cron frente a la salida de los trabajos cron.
Estoy abierto a soluciones que implican un poco de secuencias de comandos o pirateo, pero idealmente este sería un bit de configuración que podría establecer en algún lugar. No veo ninguna pista man cron
. ¡Gracias!
root: /var/log/cron.log
no funciona feep.net/sendmail/tutorial/intro/aliases.htmlNo creo que lo que estás pidiendo sea realmente posible con Ubuntu (o cualquier otro) cron.
Además de la idea de geekmonkeys, también puede configurar $ MAILTO en una cuenta local y enrutar la salida a través de procmail.
fuente
Nunca escuché de tal configuración para cron, así que tomaría la ruta de scripting.
Cree un trabajo cron para patrullar / var / spool / cron / * y agregue la redirección a cualquier trabajo que no tenga uno.
fuente
Otra opción sería crear un script de shell llamado cron_wrapper o algo así, y hacer que haga algo como esto:
Entonces, todos tus crontabs solo necesitan algo como esto:
Tenga en cuenta que no he probado este código, es solo una idea.
fuente
No sé cuál es el "cron estándar". Hay muchos demonios cron, diferentes distribuciones usan diferentes. Vixie cron se despliega más ampliamente, así que eso es probablemente lo que querías decir. Pero en algunas distribuciones, no sería el predeterminado.
Me hice cargo del desarrollo del cron de Dillon (dcron), que es el predeterminado en Arch Linux. Otras distribuciones también lo usan, pero no sé si es el predeterminado en otro lugar. dcron tiene una opción de invocación
-M
para especificar que desea utilizar un script personalizado en lugar de sendmail. Se llama al script sin argumentos y con algunos encabezados de correo electrónico y la&>
salida de cualquier cronjobs como stdin. (Si no hay&>
salida, el script no se llama).fuente
¿Por qué no configuramos MAILTO = "" en particular crontab del usuario? Esto deshabilitará el registro de mensajes de correo en / var / spool / mail /
fuente