El comando Mailx o mail no incluye el cuerpo cuando se activa mediante crontab

El comando Mailx o mail no incluye el cuerpo cuando se activa mediante crontab

Creé un script que verifica el proceso del servidor Apache y envía un correo electrónico si el proceso no funciona.

apache_down=`service httpd status | grep "inactive (dead)"`
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]

El script funciona bien cuando se ejecuta manualmente: envía el correo con el asunto y el cuerpo correctos "$apache_down".

Sin embargo, cuando lo coloco en crontab, envía el correo solo con el asunto y no con el cuerpo.

*5 * * * * script.sh >/dev/null 2>&1

El cuerpo está vacío con solo "" . Usé mail -s y el mismo resultado. ¿Es esto un problema con mi script o la configuración de crontab o mailx?

Respuesta1

Comprobar el$RUTAvariable si está configurada correctamente para ejecutar comandos; de lo contrario, configúrela en su secuencia de comandos o, en general, para cron. Si $PATH no está configurado correctamente para binario, entonces,servicioEl comando no se ejecutará o tendrá que agregarlo manualmente ejecutándolo como/usr/sbin/servicio

También intente agregar la verificación si la variable tiene alguna salida dentro del script...

if [[ -n "$apache_down" ]]
then
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]
else
echo "apache running fine" | mailx -s “APACHE_Running_`hostname`” [email protected]
fi

información relacionada