Команда Mailx или mail не включает тело при запуске через crontab

Команда Mailx или mail не включает тело при запуске через crontab

Я создал скрипт, который проверяет процесс сервера Apache и отправляет электронное письмо, если процесс не работает.

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

Скрипт отлично работает при ручном запуске — он отправляет письмо с правильной темой и текстом «$apache_down».

Однако когда я помещаю его в crontab, он отправляет почту только с темой, а не с телом.

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

Тело пустое, только "". Я использовал mail -s и тот же результат. Это проблема с моим скриптом или crontab или настройками mailx.

решение1

Проверить$ПУТЬпеременная, если она правильно установлена ​​для выполнения команд, если нет, то установите ее в своем скрипте или вообще для cron. Если $PATH неправильно установлена ​​для двоичного файла, то,услугакоманда не будет запущена или вам придется добавить ее вручную, выполнив ее как/usr/sbin/сервис

Также попробуйте добавить проверку, имеет ли переменная какой-либо вывод внутри скрипта...

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

Связанный контент