Если я повторяю заявление, и никто его не слышит, повторяется ли оно когда-нибудь? (Вопрос о задании PHP cron)


Итак, у меня есть сценарий, который я отлаживаю с помощью набора операторов echo. Это выполняется каждые 3 минуты на моем сервере с помощью cron, и я иногда оставляю там инструкции echo. Они не идут в браузер, они просто идут... куда угодно?

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

Author: Alex Mcp, 2009-08-24

2 answers

Ответ "да", и выходные данные отправляются по почте учетной записи, на которой выполняется задача cron. Вы можете изменить это в файле crontab, установив параметр "MAILTO=имя учетной записи", как в этом примере файла cron:

MAILTO=root

# run a script every hour
01 * * * * root run-parts /etc/cron.hourly
#etc.

Любые результаты выполнения вышеупомянутой задачи cron будут отправлены по почте пользователю root. Как написал Майк Б, вы также можете просто перенаправить вывод в другое место в строке задачи, используя оператор >:

01 * * * * php testscript.php > /var/log/logfile.log

В этом случае cron не видит его и не отправляет электронная почта.

Суть в том, что если вы оставите некоторые операторы echo в PHP-скрипте и установите его в качестве задания cron, то вы начнете получать электронные письма от демона cron.

 10
Author: zombat, 2009-08-24 04:07:12

Да, они выводятся , но никому конкретно (см. Ответ зомбата , он отправляется по почте владельцу кронтаска). Вы можете записать выходные данные вашего скрипта в файл с помощью:

php myscript.php > /var/log/cronlog.log

(Предполагая, что вы используете linux, так как вы сказали cron, а не запланированную задачу)

 9
Author: Mike B, 2017-05-23 10:33:11