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?

Respuestas:


15

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

Algo como:

SHELL=/bin/bash
MAILTO=



01 * * * *  /your/path/to/script/here.sh

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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.