Если я повторяю заявление, и никто его не слышит, повторяется ли оно когда-нибудь? (Вопрос о задании PHP cron)
Итак, у меня есть сценарий, который я отлаживаю с помощью набора операторов echo. Это выполняется каждые 3 минуты на моем сервере с помощью cron, и я иногда оставляю там инструкции echo. Они не идут в браузер, они просто идут... куда угодно?
Я думаю, это расплывчатый вопрос, но что происходит, когда нет конечного пользователя или вывода для оператора echo? Это засоряет память? Оно просто исчезает? Я был бы признателен за любую помощь в понимании этого.
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.
Да, они выводятся , но никому конкретно (см. Ответ зомбата , он отправляется по почте владельцу кронтаска). Вы можете записать выходные данные вашего скрипта в файл с помощью:
php myscript.php > /var/log/cronlog.log
(Предполагая, что вы используете linux, так как вы сказали cron, а не запланированную задачу)