По запросу «drupal cron» Google первой же строчкой выдает вполне разумную и достаточно подробную инструкцию на английском языке. Здесь же в двух словах на русском. Правда, это актуально только в том случае, если к хостингу есть доступ по SSH и разрешено запускать команду crontab
.
Сначала нужно убедиться, что по умолчанию в системе установлен ваш любимый редактор. Для этого нужно выполнить команду
Если вас не устраивает ее вывод, то нужно выполнить одну из следующих команд:
$> export EDITOR=emacs
$> export EDITOR=nano
А лучше прописать ее в ~/.bashrc
.
Теперь убедимся, что в системе установлена программа wget
:
Последняя команда выдаст что-то типа /usr/bin/wget
. Именно этот путь и нужно будет использовать ниже.
Теперь мы готовы редактировать cron-записи. Для этого служит команда
Первые пять полей каждой строчки файла, который откроется на редактирование, как раз и задают расписание выполнения задаваемых пользователем процедур.
Следующая команда будет выполняться каждый день в 20:30 по серверному времени:
А, например, команда
— каждый час, когда пробивает 45 минут (00:45, 01:45, …, 23:45).
Подробное описание формата crontab-файла доступно вот так:
Немного о параметрах команды wget
:
- «
-O -
» — всё, что закачалwget
будет писаться в файл стандартного вывода (аргумент «-
»), т.е., грубо говоря, на экран - «
>/dev/null 2>&1
» — перенаправляет стандартный вывод в никуда («>/dev/null
»), а поток сообщений об ошибках («2
») в стандартный вывод («&1
»), т.е. тоже в никуда - «
-q
» — заставитьwget
работать молча (не информировать пользователя о проделываемой работе) - «
-t 1
» — выполнить лишь одну («1
») попытку соединения (а не 20, которые установлены по умолчанию) - «
http://example.com/cron.php
» — путь к собственно файлуcron.php
; конечно,http://example.com
нужно заменить на адрес вашего сайта и, если Drupal установлен не в корне, указать к нему полный путь (например,http://example.com/~example/cron.php
)
На мой взгляд, это есть необходимый минимум.
Комментарии
Хорошая инструкция. Спасибо.
Спасибо!
Толково написано!
Заработало таким образом
У меня cpanel
в админке в меню планировщик cron... прописал
Надо прописать
/usr/bin/wget -O - -q -t 1 http://*site_domen*/cron.php
В результате
/usr/bin/wget -O - -q -t 1 http://*site_domen*/cron.php >/dev/null 2>&1
( >/dev/null 2>&1 система сама добавляет)
При этом снизу в выпадающем меню - указываю каждый день или еще как...