как сделать php crontab тихим

как сделать php crontab тихим

Я настроил crontab в Cpanel на запуск каждую минуту. Он отлично работает, но я не хочу получать письмо каждую минуту. У меня есть вторая вкладка cron, которая запускается каждый день. Мне бы хотелось узнать реакцию этой вкладки. Есть ли способ заставить crontab молчать или отправлять только письмо при ошибке?

У меня есть:

    *    *  *   *   * php /home/public_html/folder/file.php 2>&1

Последний фрагмент 2>&1я добавил, потому что думал, что он сделает звук тише.

Из документации Cpanel:

Вы можете заставить cron отправлять письмо каждый раз, когда он запускает команду. Если вы не хотите, чтобы письмо отправлялось для отдельного задания cron, вы можете перенаправить вывод команды в /dev/null следующим образом: mycommand >/dev/null 2>&1

решение1

использование -qего означает «тихий» и, таким образом, не генерирует вывод

*    *  *   *   * php -q /home/public_html/folder/file.php

также спросите себя, почему вы хотите запускать его каждую минуту, это немного перебор.

решение2

2>&1перенаправляет все, что записано в stderr, в stdout

>/dev/nullперенаправляет stdout в /dev/null

cron всегда будет отправлять вам по электронной почте все, что отправлено на stdout или stderr, если только не будет перенаправлено куда-то еще. В идеале ваш PHP-скрипт должен быть переписан так, чтобы принимать флаг --quiet, который не выводит целую кучу бесполезного дерьма на stdout, который вы затем можете использовать в своей задаче cron.

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

решение3

Правильная установка будет такой:

>/dev/null

Это приведет к игнорированию стандартного вывода и отправке вам электронного письма только в случае возникновения ошибки.

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

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