В этой статье:
Задания Cron
Cron - это демон (программа, которая постоянно работает в системе в фоновом режиме), представляющий собой планировщик задач в UNIX-подобных операционных системах (включая сервер Apache), который в определенное время автоматически выполняет задания. Пример задания - копирование базы данных в определенное место на сайте (создание резервной копии).
Каждый пользователь системы может добавлять свои задания, указывая, в какое время и какие скрипты нужно выполнять от его имени. Задания могут выполняться, например, раз в день, раз в месяц, раз в год.. На вашем хостинге могут действовать ограничения на общее количество заданий и на то, как часто может выполняться задание (Например, не чаще 1 раза в 10 минут и не более 10 cron-заданий).
Задание (таблица crontab) включает 6 разделов, разделяемых пробелами или табуляцией.
минуты часы день_месяца месяц день_недели команда
Первые пять разделов задают время выполнения скрипта:
минуты: 0-59
часы: 0-23
день месяца: 1-31
месяц: 1-12
день недели: 0-7 (0 и 7 - воскресенье)
* - диапазон с первого до последнего.
команда задает скрипт, который нужно выполнять, например, скрипт на Perl или на php. Если команда передает текст в стандартный вывод, этот текст отправляется на e-mail пользователя, но стандартный вывод можно перенаправить в /dev/null:
команда >/dev/null 2>&1
Примеры задания времени выполнения скрипта:
0 22 * * * - каждый день в 22:00
0 0 1 * * - раз в месяц
0,30 10-22 * * * - каждые полчаса между 10:00 и 22:00
*/10 * * * * - каждые 10 минут
Права доступа
На скрипт рекомендуется выставить права доступа 755 (права на исполнение).
Добавление задания Cron в ISPmanager
В ISPmanager параметры выполнения для крона задаются в отдельных полях формы.
Войдите в Главное - Планировщик и нажмите кнопку "Создать". В появившейся форме задайте Команду и Период (периодичность выполнения), а также выберите опцию Не отправлять отчёт по e-mail.
Команда - это путь до интерпретатора (у меня сработало просто php), пробел и полный путь до скрипта:
php /home/логин/public_html/myscript.php
*** Полный путь до скрипта включает путь к корневой директории сервера, который можно узнать, выполнив в браузере:
<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>
Период - периодичность выполнения задания можно выбрать из списка (базовый режим):
каждый час - выполнение в 0 минут каждого часа.
каждый день - выполнение ежедневно ровно в 00:00.
раз в неделю - выполнение каждое воскресенье ровно в 00:00.
раз в месяц - выполнение первого числа каждого месяца ровно в 00:00.
раз в год - выполнение каждый год 1 января ровно в 00:00.

или задать вручную (экспертный режим)

Добавление задания Cron в cPanel
В cPanel войдите в "Дополнительно", "Задания Cron" и заполните форму добавления задания.
Особенности выполнения php-скрипта в задании Cron
В выполняемом php-скрипте не должны использоваться переменные окружения. Например, адреса следует прописывать явно. Дело в том, что при выполнении cron-задания в php-скрипте недоступны серверные переменные (например, $_SERVER, $_GET), т.к. веб-сервер Apache не участвует в работе демона cron и не заполняет переменные окружения.
В команде необходимо указать путь к php (может отличаться для разных хостингов), например, /usr/bin/php, затем пробел и полный путь к файлу скрипта:
/usr/bin/php /home/логин/public_html/myscript.php
Пример Cron-задания для выполнения php-скрипта один раз в день (0 0 * * * - задает периодичность)
0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php
А как подавить отсылку на емайл сообщений крона?
команда >/dev/null 2>&1
Доброго времени.
У вас отличный блог, странно, почему я на него раньше не попадал.
Столкнулся, не в первый раз уже, с работой cron в вордпресс.
В свое время, вырубил его функционал в wp-config, потому что при обращении к wp-cron.php с хостинга возвращает 404.
Покурив интернет, выяснил, что это происходит когда в hosts на хостинге прописано 127.0.0.1 localhost, а wordpress-у нужно, в данном случае, чтоб был прописан адрес моего блога. Хостинг виртуальный, провайдер что-либо делать отказался. Ну я отключил. А сейчас решил поставить wp super cache, но сия зверюга натыкаясь на 404 ставиться не хочет.
Не подскажете, где бы его чего почитать более-менее толковое про этот чертов функционал? Второй раз за месяц по интернету прохожусь с этими вопросами, но такое ощущение, что это или заговор, или я не там ищу.
Хочу отпинать или вордпресс, чтоб дергался крон сервера хостинга, либо научить кэширующий плагин работать с внешним кроном.
Благодарю.
Спасибо пост реально очень помог
Скрипты могут не работать из-за указания расширения в названии файла
А можно "для особо одаренных" или, вернее, для вообще ничего не знающих в php подробнее написать, куда вставить строку-php или что там еще.
Задание в Cron - это логически понятно - выставить время, а вот мне например, надо выставить задание для создания backup сайта. Какую команду и куда ее вписать?
Уууу полегчало, оказывается что так просто :)
Описано легко и понятно. Только у Вас получается, что в неделе 8 дней (от 0 до 7)
Поправьте, плз, а то чайники запутаются... :)
День недели может быть задан числом от 0 до 7, причем 0 и 7 соответствуют воскресенью.
Здравствуйте, у меня такой вопрос, куда вписывать путь к файлу PHP? хотелось бы по подробнее.
Можно ли отправить резервную копию на e-mail? (именно копию, а не отчёт). Если да, то как?
Если это статья для новичков, то совершенно не понятно куда писать команды этому крону типа:
0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php
Просто в консоли вводишь последовательно команды.
echo "0 0 * * * /usr/bin/php /home/логин/public_html/myscript.php" | crontab
service cron reload
>> т.к. веб-сервер Apache не участвует в работе
A Nginx участвует?
А IIS?