Запуск крона (cron)

Cron - по-русски это планировщик задач или крон, как его принято называть в среде разработчиков Друпал, или демон в юниксовых ОС. Как обычно крон предназначен для выполнения заданий с определенной периодичностью.
Запуск крона на хостинге.
В Drupal cron.php требует периодического запуска для нормального функционирования и технического обслуживания модулей. Из стандартных модулей:
- watchdog надо удалять старые сообщения,
- search - индексировать ваш сайт,
- aggregator - собирать новости.
Вообщем работы и забот у крона много. Ряд сторонних модулей так же использует крон.
Вообщем-то, простенький сайт на Друпал спокойно может прожить и без крона. К примеру этот сайт первый год своей жизни без него и жил, но все же для нормального функционирования периодический запуск крона необходим.
При доступе к хостингу через cpanel, настройка периодического выполнения крона достаточно проста. Далее пару скриншотов, что и где настраивать
Запускаете в Cpanel "Планировщик задач" из раздела "Дополнительные инструменты", выбираете уровень знаний - "Стандартный". Далее в окне вы указываете комманду запуска:
wget -O - -q -t 1 http://sitename/cron.php
и выбираете периодичность ее выполнения. Вы так же можете указать электронную почту, на которую будут приходить уведомнелия о результате выполнения команды.
Последнее время стал популярен модуль запуска крона из среды Друпала http://drupal.org/project/poormanscron . В Drupal 7 он даже включен в ядро, но ряд уважаемых мною специалистов не рекомендуют его использование. Если уж хостинг не позволяет другими способами автоматически запускать крон, то конечно можно использовать и этот.
Не забывайте что cron может прилично нагружать систему и рекомендуется аккуратно настроить периодичность вызова крона. А так же следует по возможности удалить не критичные задачи из выполнения. В частности, для повышения производительности рекомендуется отключить модуль - Update status.
Ограничение доступа к cron.php
Так как теоретически можно "подвесить" сайт постоянным удаленным запуском cron.php, то необходимо ограничить доступ к cron.php
- Как вариант предлагается в конце файла .htaccess добавить:
<Files "cron.php"> Order Deny,Allow Deny from all Allow from localhost Allow from 127.0.0.1 Allow from xxx.xxx.xxx.xxx Allow from yyy.yyy.yyy.yyy </Files>
при этом xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy - заменить на допустимые IP - адреса удаленного запуска
- Если на хостинге по каким либо причинам нет доступа к .htaccess, то возможно поможет изменение кода cron.php. Вначале дописать:
<?php
if($_SERVER['REMOTE_ADDR'] !== 'IP сервера')
exit();
?>Узнать IP-сервера можно:
<?php
var_dump($_SERVER['REMOTE_ADDR']);
?>Во втором случае запуск крона будет разрешен только с сервера. Ручной запуск крона так же будет возможен.
Тема вообщем-то не нова, это скорее напоминалка для самого себя
Полезные ссылки: http://drupal.org/cron
Комментарии
Very nice post, good luck! ;-)
спасибо, еще бы подсказали, как отложенные публикации делать с помощью этого крона
Отправить комментарий