Перейти к основному содержимому

Cron в Unix или Linux

В Unix и Linux используется встроенная программа cron, которая является стандартной практически для всех систем. Вам необходимо добавить команду в «crontab» (таблицу, содержащую команды cron) для пользователя веб-сервера.

Есть два разных способа вызвать процесс Moodle cron:

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

Метод 1: cron в командной строке (cli)

Если у вас есть выбор, это обычно лучший способ запустить Moodle cron.

PHP также способен запускать программы непосредственно из командной строки. Ваша система должна быть настроена для этого; в частности, вам нужна установленная версия PHP для CLI. В большинстве систем с установленным PHP это есть по умолчанию. Если у вас установлена версия PHP CLI, то это рекомендованный метод вызова cron. Правильная команда будет выглядеть примерно так...

/usr/bin/php /path/to/moodle/admin/cli/cron.php

(замените правильный путь к moodle и для php по мере необходимости)

Вы можете просто ввести это в командной строке, чтобы проверить, работает ли это. Если вы не уверены в пути к PHP, вы можете ввести which php.

Совет: если у вас возникли проблемы, см. страницу PHP. В частности, проверьте альтернативный php.ini для команды CLI PHP, который может не иметь подходящих настроек.

Метод 2: веб-версионный cron

Примечание: чтобы использовать веб-скрипт cron, вы должны сначала проверить Настройки cron, чтобы убедиться, что этот метод разрешён.

Идея состоит в том, чтобы вызвать следующую веб-страницу (вы можете попробовать это из своего браузера):

http://url.of.your/moodle/admin/cron.php

Для запуска этого на сервере нужен браузер на основе командной строки (текстовый). Возможные варианты следующие (например, в OSX поставляется только curl)...

/usr/bin/wget -q -O /dev/null/ http://url.of.your/moodle/admin/cron.php

(вывод не отображается — удалите -O /dev/null/ для тестирования)

...ИЛИ...

/usr/bin/curl http://url.of.your/moodle/admin/cron.php -o /dev/null/ -silent

(вывод не отображается — удалите -o /dev/null/ -silent для тестирования)

Использование программы crontab в Unix/Linux

После того как вы выбрали (и протестировали!) соответствующую команду для вызова Moodle cron, её необходимо добавить в «crontab» пользователей веб, чтобы запланировать её регулярное выполнение. «Crontab» — это файл, содержащий команды cron пользователя, а также название программы командной строки, используемой для его редактирования. Используйте следующую команду (от имени root), заменив правильного пользователя на «www-data» (например, «apache» для CentOS, «www-data» для Debian/Ubuntu, «_www» для macOS — Google знает!)

# crontab -u www-data -e

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

* * * * * /usr/bin/php  /path/to/moodle/admin/cli/cron.php

Первые пять записей * указывают время, за которым следует команда для запуска. Это означает запуск команды как можно чаще, т. е. каждую минуту.

См. https://en.wikipedia.org/wiki/Cron#CRON_expression для подробностей о выражениях cron.

См. также