CakePHP Shell Cron ошибка электронной почты - PullRequest
1 голос
/ 05 апреля 2011

Я использую CakePHP 1.3 и смог успешно настроить задачу cron для запуска оболочек, используя пример, приведенный в CakePHP Book.

*/5 *   *   *   * /full/path/to/cakeshell myshell myparam -cli /usr/bin -console /cakes/1.2.x.x/cake/console -app /full/path/to/app >> /path/to/log/file.log

Это выводит результаты в файл журнала, но я хочу получать электронную почту при возникновении ошибки, чтобы попытаться решить проблему. Я попробовал следующее без удачи.

  1. Если я удалю >> /path/to/log/file.log, то даже успешный прогон будет отправлен по электронной почте.
  2. > / dev / null, я предполагаю, что он успешно отправит / dev / null и сообщение об ошибке по электронной почте.
  3. 1> / dev / null, пробовал другой вариант 2

Любая помощь приветствуется.

Спасибо

1 Ответ

0 голосов
/ 06 апреля 2011

Huseyin,

В таком случае это не ошибка CakePHP, и, возможно, этот вопрос лучше подходит для сбоя сервера, поскольку вы могли бы написать сценарий для своего решения.задачу, попробуйте аккуратные вводные учебники по сценариям оболочки для проекта документации Linux и #man bash.

Ваше решение в основном должно использовать временный файл или переменную, в которой вы сохраняете выходные данныепоследний запуск задания cron.Если есть ошибка:

cat THE_TMP_FILE | mail -s "Error from Server Huseyin's server" huseyin@fancy_domain.com

else: cat THE_TMP_FILE >> blah.blah.log

К сожалению, вам нужен доступный MTA для выполнения команды mail.Если у вас нет доступа к команде mail, то вы устанавливаете другое задание cron, следующее за первым по времени, которое затем просто запускает if [ -e THE_FILE_CONTAINING_THE_LAST_ERROR]; then { echo $(cat THE_FILE_CONTAINING_THE_LAST_ERROR); rm -v THE_FILE... ;} ; fi

Конечно, это не рабочий код, но довольно близко,так что вы поймете идею.

...