Производство крона, не работающее

Нуждаюсь в помощи понимая этого. У меня есть следующий сценарий-/root/eximqueue.sh с надлежащими +x правами и т.д.:

#!/bin/bash
######### Edit here ##########
_mail_user=my@address.co.za # Set this to your email id to receive alerts on mail queue
_limit=20 # Set the limit here

##############################

clear;
_result="/tmp/eximqueue.txt"
_queue="`exim -bpc`"

if [ "$_queue" -ge "$_limit" ]; then
echo "Current queue is: $_queue" > $_result
echo "Summary of Mail queue" >> $_result
echo "`exim -bp | exiqsumm`" >> $_result
mail -s "Number of mails on `hostname` : $_queue" $_mail_user < $_result
cat $_result
_message_id="`exiqgrep -i -f my@address.co.za | xargs exim -M`"
fi

rm -f $_result

Я затем устанавливаю крон, проверил мои кроны (crontab-l) и там:

*/5 * * * * /bin/sh /root/eximqueue.sh

Проверенный мои журналы крона

grep eximqueue /var/log/cron

... и его выполнение (только некоторые для пользы в качестве примера):

Oct 12 14:00:01 osi CROND[28191]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:05:01 osi CROND[30877]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:10:01 osi CROND[893]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:15:01 osi CROND[4429]: (root) CMD (/bin/sh /root/eximqueue.sh)

Проблема, я не получаю электронной почты из сценария! Однако, если я выполняю его непосредственно - это работает отлично, и я получаю электронную почту. Идеи?

0
задан 12 October 2015 в 15:23
1 ответ

Проблема в том, что когда скрипт запускается из cron, PATH намного короче, чем когда вы запускаете его напрямую из bash.

Просто замените вызовы программы на полный путь к их. / usr / sbin / exim вместо exim , например (или там, где вы установили exim).

0
ответ дан 24 November 2019 в 07:55

Теги

Похожие вопросы