2013-03-28 4 views
1

У меня есть несколько заданий cron, которые работают ежедневно из моей cPanel. Это означает, что в 99% случаев я получаю ежедневные электронные письма, в которых говорится, что все в порядке - резервное копирование в порядке, импорт XML-кода в порядке и т. Д.Уведомление о том, что задание Cron не является нормальным

Но мне нужно, т.е. вне обычного. Я пробовал делать правила в мировоззрении, но я не могу заставить его работать.

Это, например, один из моих crons:

30 2 * * * /usr/local/bin/php /home/xx/public_html/administrator/xx/xx/backup.php -profile=1 -description="Backup" 

Я понимаю, что «Bash» имеет возможность, но не так, как практически использовать его.

У кого-нибудь есть хорошие идеи?

Вход оценивается.

+0

Есть ли конкретная причина, чтобы попытаться установить это в Outlook, а не и хрон стройплощадки? (серьезный вопрос, я понятия не имею о cpanel.Я знаю, что возвращаемое значение любого скрипта на unix, как ОС, равно 0 (без ошибок) или не равно нулю. Вы можете инициировать отправку почты только при ненулевых значениях возврата – Hennes

+0

Задача Cron отправлять электронную почту, когда есть выход. Не выводите ничего, когда все в порядке. –

ответ

0

Вы можете написать обертку вокруг задания и вызвать оболочку из cron.

Пример:

 
#!/usr/bin/env ksh 

# 
# Wrapper around a backup script. 
# 
# Redirecting all output to a log file 
# In this case to /home/xx/public_html/administrator/xx/xx/backup_job.log 

# 
# Lets log the start date of the job in a log file 
# 
echo "Starting backup job at `/bin/date`" >> /home/xx/public_html/administrator/xx/xx/backup_job.log 

# 
# start the backup 
# 
/home/xx/public_html/administrator/xx/xx/backup.php >> /home/xx/public_html/administrator/xx/xx/backup_job.log 

# 
# The backup job should have set a return value (0 or non-zero). 
# 
# If it is non-zero then there was an error. Lets send a warning mail about it 
# 
# 
if [[ $? -ne 0 ]]; then 
/bin/mail admin > /var/adm/backup_log 

# 
# Exit with a 0 value. That should indictate that this job (the wrapper) worked fine 
# Usually this means cron does not have to send a mail. (But then, we already took care 
# of warning mails on our won if there was an error 
# 
exit 0 
Смежные вопросы