Deja de que cron me envíe un correo electrónico

10

¿Cómo puedo evitar que cron me envíe por correo electrónico los resultados de los trabajos que programo?

Richard Hoskins
fuente

Respuestas:

15

Al establecer la variable de entorno "MAILTO" como ""

Algo como:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh
OscarRyz
fuente
12

Si desea que un solo trabajo detenga el correo electrónico, simplemente agregue> / dev / null 2> & 1 a él

Por ejemplo:

0 * * * * /home/script >/dev/null 2>&1
Robar
fuente
1
Si está seguro de que una ejecución finalizará antes de que comience la siguiente, puede valer la pena redirigir la salida a un archivo con nombre en lugar de a / dev / null: eso le da la opción de verificar qué sucedió con la última ejecución si sospecha que problema.
mas
4

Cron solo te envía un correo electrónico si hay salida, ya sea en stdouto stderr.

Si se trata de guión que ha escrito, hacerlo menos verboso - eliminar innecesarias echoo printdeclaraciones. Redirigir stdouta /dev/nulltambién es una solución válida:

2 * * * * /my/script > /dev/null

Si aún recibe mensajes después de hacer eso, la salida está activada stderr, por lo que debería ser un error, que debe resolver. Si no, puede redirigir stderra /dev/nullcon ...

2 * * * * /my/script > /dev/null 2> /dev/null

... aunque ignorar los mensajes de error es generalmente una mala idea. (¿Cómo sabrá cuando el trabajo cron está roto?)

Puede redirigir la salida de un comando específico de stderr a stdout usando 2>&1, por ejemplo:

command_which_prints_messages_to_stderr 2>&1 # redirect stderr to stdout

..entonces directo stdouta /dev/nullsu trabajo cron - de esa manera silencia el comando fuerte, sin perder mensajes de error

dbr
fuente