
Tengo algunas tareas cron y algunas de ellas no dejan de enviarme correos electrónicos.
Una tarea de ejemplo es:
*/2 * * * * php aplicación/consola mautic:correo electrónico:fetch > /dev/null 2>&1
(Todas las tareas con el problema son tareas maúticas).
Probé algunos trucos para evitar correos electrónicos:
> /dev/null
>/dev/null
>/dev/null 2>&1
>/dev/null 2>&1 || true
|| true
Todos ellos continúan enviando correos electrónicos en cada ejecución.
Un correo electrónico de ejemplo:
/bin/sh: 1: no se puede crear 1: permiso denegado
(Entiendo que es un error extraño, pero es un ejemplo. Sé que necesito solucionar el error y no silenciarlo, pero quiero saber por qué no puedo silenciarlo con un método normal).
La pregunta es: ¿Por qué incluso cuando redirijo el resultado de la tarea o cuando uso el || Es cierto para cambiar el resultado de la tarea, ¿cron continúa enviando correos electrónicos? La única solución que puedo encontrar (en la pregunta vinculada) es agregar
CORREO A=""
después de las tareas cron "normales" (o que no son spam) (y antes de estas otras).
Pregunta relacionada:¿Cómo puedo silenciar completamente un cronjob en /dev/null/?.
Respuesta1
El /bin/sh: 1: cannot create 1: Permission denied
error probablemente se deba a que tienes un error tipográfico en una redirección. Quizás en lugar de 2>&1
ti tengas 2>1
o 2>1&
. (Normalmente, el intento de crear un archivo con el nombre 1
en su directorio de inicio tendría éxito, pero si un archivo con el nombre 1
ya existe y no se puede escribir, obtendrá ese error).
La razón por la que ese error no se silencia es que el mensaje no proviene del comando cuya salida ha sido redirigida. El shell informa el mensaje durante el tiempo que intenta configurar la redirección para el comando. La salida del shell en sí no ha sido redirigida, por lo que cron
usted recopila el mensaje y se lo envía por correo electrónico.