Вот строка:
# every hour
0 * * * * /usr/bin/php -d memory_limit=500M -f [wwwpath]cron/cron-hour.php > /dev/null 2>&1
Что я уже нашел:
0 * * * * формат времени из сайта просто видно что означает.
/usr/bin/php указывает обработчик
-d определяет INI php из параметром memory_limit=500M
-f приступает к обработке файла
[wwwpath]cron/cron-hour.php место, откуда берётся файл
> меняем вывод результата
и далее — темнота. Пожалуйста, растолкуйте с 6-го пункта включительно, как дальше работает интерпретатор?
Ответ
Что за магическое something > /dev/null 2>&1?
Как вы уже правильно заметили, > перенаправляет поток. Цитируя статью I/O Redirection
COMMAND_OUTPUT >
# Redirect stdout to a file.
# Creates the file if not present, otherwise overwrites it.
# Перенаправляет stdout в файл
# Создает файл, если он не существует, в противном случае, перезаписывает
Обратите внимание, > перенаправляет только stdout, но помимо него есть еще два потока: stdin и stderr. Последний нас интересует больше всего.
У каждого потока есть свой дескриптор:
stdin: 0
stdout: 1
stderr: 2
Соответственно, нам осталось перенаправить куда-нибудь в укромное место поток stderr. Это можно сделать с помощью команды 2>. В данном случае, мы перенаправляем его в поток stdout, что эквивалентно 2>&1
M>&N
# "M" is a file descriptor, which defaults to 1, if not set.
# "N" is another file descriptor.
# "M" - дескриптор файла. По умолчанию - 1
# "N" - дескриптор файла, в который будет организовано перенаправление.
Комментариев нет:
Отправить комментарий