
Configuré un crontab en Cpanel para que se ejecute cada minuto. Está funcionando muy bien, pero no quiero recibir un correo electrónico cada minuto. Tengo una segunda pestaña cron que se ejecuta todos los días. Me gustaría la respuesta de esta pestaña. ¿Hay alguna manera de indicarle al crontab que permanezca en silencio o que solo envíe un correo electrónico en caso de error?
Tengo:
* * * * * php /home/public_html/folder/file.php 2>&1
Lo último 2>&1
lo agregué porque pensé que lo haría silencioso.
De los documentos de Cpanel:
Puede hacer que cron envíe un correo electrónico cada vez que ejecute un comando. Si no desea que se envíe un correo electrónico para un trabajo cron individual, puede redirigir la salida del comando a /dev/null de esta manera: mycommand >/dev/null 2>&1
Respuesta1
usarlo -q
significa "silencioso" y por lo tanto no genera resultados
* * * * * php -q /home/public_html/folder/file.php
Además, pregúntate por qué quieres ejecutarlo cada minuto, eso es un poco excesivo.
Respuesta2
2>&1
redirige todo lo escrito en stderr a stdout
>/dev/null
redirige la salida estándar a /dev/null
cron siempre le enviará por correo electrónico cualquier cosa enviada a stdout o stderr a menos que se redirija a otro lugar. Idealmente, su script PHP debería reescribirse para aceptar un indicador --quiet que no escriba un montón de basura inútil en la salida estándar, que luego podría usar en su trabajo cron.
La opción del perezoso es poner unguión contenedoralrededor de su trabajo cron que evitará que le envíe correos electrónicos a menos que su comando salga de un valor distinto de cero.
Respuesta3
La configuración correcta sería
>/dev/null
Esto hace que se ignore la salida estándar y solo se le envía un correo electrónico si hay un error.
Su configuración actual no maneja la salida estándar, por lo tanto, recibe un correo electrónico cada vez que se ejecuta.