Я пытаюсь заставить свои задания cron вывести ошибки, если задание cron не удалось. Я создал команду, которая намеренно не сможет это проверить, например:
* * * * * php /var/some/nonexistent/script.php >> cronLog.log
Я не хочу связываться с использованием MTA, поскольку Google Compute Engine блокирует все исходящие SMTP-запросы на порт 25, но я могу ' не вижу ничего в cronLog.log. У меня правильно настроены разрешения, и я могу без проблем писать в cronLog.log, если скрипт php выполняется успешно. Итак, если вывод успешно передается в cronLog. log во время успешного задания cron, почему он просто исчезает, если команда не работает? В syslog тоже ничего нет. Куда идут мои выходные данные об ошибках?
Вы не захватываете stderr, в который выводятся сообщения об ошибках. Попробуйте
* * * * * php /var/some/nonexistent/script.php >> cronLog.log 2>&1
: 2> & 1
перенаправляет stderr на стандартный вывод, который сам перенаправляется на cronLog.log.