Как правильно настроить крон? На хостинге поддерживается, всё ок.
но там нужно указать промежуток времени... Какой рекомендуете?
И ещё нужно указать команду которую вызывать (путь к ней)...
Какие нужно команды вызывать и какие к ним пути?
для того что бы работал поиск, gsitemap...
Комментарии
уверен что каждый кто имеет сайт на друпал настраивал это...
пожалуста подскажите!!!
насколько я понял запускается он http://имясайта/cron.php.
а для того что бы крон автоматом запускался нужно этот адрес (http://имя сайта/cron.php) прописать в опциях (крона) на хостинге.
а как можно сделать что бы он запускался моментально после обновления. я вижу так сделано на http://drupal.ru
Ну, от хостинга это зависит. На одном из хостингов в панели управления я просто написал:
php /home/myhome/sitedir/cron.php
и установил ежечасный запуск.
На другом все оказалось сложнее. В панели управления я указал (как просили) имя скрипта от корня хостинга. Но это не сработало, видимо из-за того, что в скриптах все пути должны быть абсолютными от корня системы (таковы требования хостера). Пришлось делать маленький cron2.php, в котором написал readfile("http://mysite/cron.php");
Извините, что два раза получилось. Просто сервер вернул 500 ошибку (второй раз за сегодня) и я нажал F5. Как удалить сообщение - не знаю.
Каждый хостер в хелпах выкладывает примеры на некоторые свои сервисы.
На рбк хостинге строчка для крона вида:
0 0 * * 5 /usr/local/bin/php /www/supers01/www/htdocs/script.php
2. Исполнение скрипта в полночь, первого числа, каждый месяц:
0 0 1 * * /usr/local/bin/php /www/supers01/www/htdocs/script.php
3. Исполнение скрипта каждый час, каждые десять минут:
*/10 * * * * /usr/local/bin/php /www/supers01/www/htdocs/script.php
mkudrin, такой вариант запуска крона для Drupal не подходит!
Требуется как минимум вызов через wget или предложенный выше способ. Плюс еще по сайту ищите, есть другие варианты.
В cron.php надо в начало прописать каоманду chdir ('/usr/local/ и т.д.... к каталогу где лежит cron.php');
Я сделал следующим образом (Debian Lenny):
т.е., первые пять звездочек - время запуска (кто не знает в Википедии найдет),
www-data - запускаем с правами апача,
-O /tmp/cron - сохраняем скачанный cron.php в своем компьютере, иначе cron все время пишет ошибку не могу записать в файл (Cannot write to `cron.php' (Permission denied).)
http://mysite.net/cron.php
- меняем на адрес реального сайтаЗамучился с настройкой на VPS...
Но в итоге сработало:
/usr/bin/wget -q http://www.SITENAME.ru/cron.php
Так. Может кому-то пригодится. Только что на sweb настроил cron так:
* */7 * * * curl -s http://yoursite.com/cron.php?sleep=3 > /dev/null
где */7 - запускать каждые 7 часов
Drupal 6.17
Команду подсмотрел в видео от лукобота:
wget -O - -q -t 1 http://имя_сайта.ru/cron.php
Убил больше часа, чтобы найти как настроить крон на Debian. Вот рабочий вариант, который удалось нарыть.
45 * * * * /usr/bin/wget -O - -q -t 1 http://site.ru/cron.php
Работает, спасибо. Ставил в ISP manager, там периодичность не надо (выбирается отдельно), только команду.
самое простое решение - внешний вебкрон юзать. Удобно, что настройки всех сайтов в одном месте и не надо приспосабливаться к особенностям хостера. А при переезде даже переделывать ничего не нужно. Команда, как обычно: http://имя сайта/cron.php
Хм. А какие особенности хостера, если данная утилита является стандартной для всех дистрибутивов?
не стандартная она. По крайней мере, хостеры так не считают. У одних wget надо юзать, у других php. Пути разные в общем случае. У кого-то вообще нету ничего или тупо не работает. "Нету" - имеется ввиду, что доступа нет.
то что вы вписываете в кронтаб, это уже ваши жопные боли, которые возникают от незнания среды где вы работаете.
Сама утилита crontab как и демон cron, являются стандартным механизмом.
образец из /scripts/cron-curl.sh прописать в кронтаб. Если чистые сцылки работают