Если я повторяю утверждение, и никто его не слышит, получит ли оно когда-нибудь отклик? (Вопрос о работе cron PHP) - PullRequest
14 голосов
/ 24 августа 2009

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

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

Ответы [ 2 ]

10 голосов
/ 24 августа 2009

Ответ - да, и выходные данные отправляются по почте учетной записи, на которой выполняется задача cron. Вы можете изменить это в файле crontab, установив опцию «MAILTO = accountname», как в этом примере файла 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.

9 голосов
/ 24 августа 2009

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

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

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

...