Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > PHP+Cron |
Автор: slang 1.8.2005, 18:09 |
Возможно-ли через Cron на хостинге запускать PHP скрипт в определенное время. Если да, то есть-ли ограничения на этот скрипт, если нет, то как это можно обойти? |
Автор: PARROT 1.8.2005, 18:11 |
Cron-формат Cron-формат это простой, но мощный и гибкий способ описания времени и периодичности действий. nnCron LITE использует cron-формат при указании временных интервалов в кронтабе. Традиционный (унаследлванный из мира Unix) cron-формат состоит из пяти полей, разделенных пробелами: <Минуты> <Часы> <Дни_месяца> <Месяцы> <Дни_недели> nnCron LITE может работать и с традиционными с "улучшенным" вариантом cron-формата, который отличается от традиционного шестым добавленным полем - <Годы>: <Минуты> <Часы> <Дни_месяца> <Месяцы> <Дни_недели> <Годы> Пользователь сам может выбрать подходящий для него формат, изменяя значение переменной YearField в файле настроек cron.ini. По умолчанию nnCron LITE использует традиционный формат, его мы и будем придерживаться в примерах Вот его схема: * * * * * | | | | | | | | | +----- Дни недели (диапазон: 1-7) | | | +------- Месяцы (диапазон: 1-12) | | +--------- Дни месяца (диапазон: 1-31) | +----------- Часы (диапазон: 0-23) +------------- Минуты (диапазон: 0-59) Любое из пяти полей может содержать символ * (звездочка) в качестве значения. Это означает полный диапазон возможных значений, например, каждая минута, каждый час и т. д. Пользователи nnCron LITE могут также использовать в первых четырех полях "нестандартный" символ - ?. См. его описание ниже. Любое из полей может содержать список значений, разделенных запятыми (наприимер, 1,3,7) или интервал (поддиапазон) значений, обозначаемый дефисом (например, 1-5). После звездочки (*) или интервала можно с помощью символа / указать шаг значений. Например, 0-23/2 может использоваться в поле "Часы" для указания того, что действие должно происходить каждые два часа (альтернатива из старого варианта - 0,2,4,6,8,10,12,14,16,18,20,22), значение */4 в поле "Минуты" означает, что действие, должно происходить каждые четыре минуты, 1-30/3 - это то же, что и 1,4,7,10,13,16,19,22,25,28. В полях "Месяцы" и "Дни недели" можно вместо числовых значений использовать сокращенные до трех букв названия месяцев (Jan, Feb ... Dec) и дней недели (Mon, Tue ... Sun) Примеры: * * * * * каждую минуту 59 23 31 12 5 за минуту до конца года, если последний день года - пятница 59 23 31 Dec Fri за минуту до конца года, если последний день года - пятница (еще один вариант записи) 45 17 7 6 * Каждый год 7-го июня в 17:45 0,15,30,45 0,6,12,18 1,15,31 * 1-5 В 00:00, 00:15, 00:30, 00:45, 06:00, 06:15, 06:30, 06:45, 12:00, 12:15, 12:30, 12:45, 18:00, 18:15, 18:30, 18:45, если сейчас 1-е, 15-е или 31-е число любого месяца и только по рабочим дням недели */15 */6 1,15,31 * 1-5 В 00:00, 00:15, 00:30, 00:45, 06:00, 06:15, 06:30, 06:45, 12:00, 12:15, 12:30, 12:45, 18:00, 18:15, 18:30, 18:45, если сейчас 1-е, 15-е или 31-е число любого месяца и только по рабочим дням недели (еще один вариант записи) 0 12 * * 1-5 (0 12 * * Mon-Fri) В полдень по рабочим дням * * * 1,3,5,7,9,11 * Каждую минуту в январе, марте, мае, июле, сентябре и ноябре 1,2,3,5,20-25,30-35,59 23 31 12 * В последний день года в 23:01, 23:02, 23:03, 23:05, 23:20, 23:21, 23:22, 23:23, 23:24, 23:25, 23:30, 23:31, 23:32, 23:33, 23:34, 23:35, 23:59 0 9 1-7 * 1 Первый понедельник каждого месяца, в 9 утра 0 0 1 * * В полночь, первого числа, каждый месяц * 0-11 * * Каждую минуту до полудня * * * 1,2,3 * Каждую минуту в январе, феврале и марте * * * Jan,Feb,Mar * Каждую минуту в январе, феврале и марте 0 0 * * * Каждый день в полночь 0 0 * * 3 Каждую среду в полночь Пользователи nnCron LITE могут использовать в первых четырех полях cron-формата нестандартный символ - ?. Он означает время старта nnCron, т. е. при обработке поля знак вопроса будет заменен на время старта nnCron LITE: минуты - для поля минут, час для поля часов, день месяца для поля дней месяца и месяц для поля месяца. Например, если написать: ? ? * * * то задача сработает в момент старта nnCron LITE и продолжит срабатывать ежедневно в это же самое время (если, конечно, пользователь не перезагрузит nnCron LITE снова) - знаки вопроса "заменятся" на время старта nnCron LITE. Если nnCron LITE стартовал, например, в 8:25, то знаки вопросов заменятся так: 25 8 * * * Вот еще несколько примеров: # запустится _только_ при старте nnCron LITE ? ? ? ? * # запустится при старте nnCron LITE (например, в 10:15) # и продолжит запускаться ровно через один час: # в 11:15, 12:15, 13:15 и т. д. ? * * * * # будет запускаться ежеминутно, в час старта nnCron LITE. # На следующий день (если крон не перезапускался) # в этот же час каждую минуту и т. д. * ? * * * # будет запускаться ежедневно, раз в пять минут, # в час старта nnCron LITE */5 ? * * * -------------------------------------------------------------------------------- |
Автор: slang 1.8.2005, 18:15 |
Так с этим я более-менее разобрался, но php срипт-то я могу запустить, он будет являться задачей или нет. На хостинге это описание (очень урезанное) есть по времени, но ни чего не сказано, какие задачи можно запускать. |
Автор: Mal Hack 1.8.2005, 18:20 | ||
Кхе-кхе.. Крон это утилита Юникс систем, позволяюзая запускать процессы в определенное время. http://hosting.zenon.net/documentation/v-www/0014.html И еще. slang пользуйся поиском, пожалйста !! http://forum.vingrad.ru/index.php?act=Search&CODE=show&searchid=aba58b64ea92adcf271daca7b53b4f5e&search_in=titles&result_type=topics&highlite=cron |
Автор: Bikutoru 1.8.2005, 18:21 |
slang, запускать можно любой php-скрипт. Но нельзя передавать параметры через Гет. Т.е. так "php myscipt.php?param=value" лучше не делать. Если очень надо, то можно сделать так: wget http://mysite.ru/myscipt.php?param=value |
Автор: slang 1.8.2005, 18:41 | ||
Хотелось-то услышать что-то типа
хотя этот вариант тоже не работает. Добавлено @ 18:45 еще пробовал так /usr/bin/php -f /home/goodmobi/www/top10.php такая-же фигня |
Автор: slang 1.8.2005, 18:57 |
УРА ЗАРАБОТАЛО!!! /usr/local/bin/php /home/test/public_html/test.php > /dev/null 2> /dev/null |
Автор: R.M. 15.12.2005, 02:35 | ||
А что значат
??? |
Автор: Bikutoru 15.12.2005, 11:13 |
Весь вывод, получаемый при работе скрипта, передать "в никуда" |
Автор: R.M. 17.12.2005, 01:37 |
Понятно, спасибо, а если на хостинге(платном) нету cron'a его можно поставить или потребовать или это от хоста зависит? |