Что такое Cron и как с ним работать?
Автор: Андрей Краснокутский
Дата: 2011-01-23 Настраиваем Планировщик Задач – Crontab.
Cron (крон), Crontab (кронтаб), Планировщик Задач - эти названия все, кто связан с «сайтостроением» слышали неоднократно. Так что же такое Cron? Как с ним работать? Зачем нужен Cron и как его правильно настроить? Все эти вопросы мы сегодня и разберем.
Первое что хочу сразу отметить: Cron, Crontab, Планировщик Задач - это всё одно и тоже, не смущайтесь от разнообразия названий.
В практике любого web-мастера, неизменно возникнет необходимость в запуске каких-либо задач по расписанию. Т.е. Вы просто прописываете нужную Вам команду, на выполнение какой-то задачи в заданное время, и всё. Дальше все происходит без Вашего участия – автоматически, и что самое приятное в нужное Вам время.
Например, Вам нужно периодически отсылать уведомления партнерам по электронной почте. Или Вы хотите установить автоматические поздравления или напоминания. Или у Вас есть каталог сайтов и Вы хотите чтобы с заданной периодичностью скрипт каталога проверял обратные ссылки и т.д. Все эти задачи можно запросто автоматизировать, поручив это Cron или, как ещё говорят – Планировщику Задач. А бывают скрипты в которых для нормальной работы Крон просто необходим.
Практически все современные Хостинги предоставляют уже готовую функцию Планировщика Задач. Если такой функции на Хостинге нет, то лучше не связывайтесь с такой Хостинговой компанией. Cron в наши дни - это уже не роскошь и если Хостинг не предлагает в пакете услуг планировщик задач, лучше поищите другую компанию, наверняка не будет и других важных функций.
Итак, давайте рассмотрим все практические действия по настойке Cron на примере русcифицированной cPanel (панели управления сайтом) Хостинговой компании Гудзон. Почему именно Гудзон? Всё просто – здесь живет мой сайт http://www.LuksWeb.ru/ и мне очень нравится этот Хостинг: полный пакет всех самых возможных услуг за очень умеренную цену.
Хотя настройка Планировщика Задач происходит примерно везде одинаково.
Заходим в панель управления сайтом, в данном случае это cPanel (бывают и другие). Доступ Вам предоставляется сразу же после покупки Хостинга, опускаемся ниже и находим вот такой раздел, Дополнительные инструменты:

Находим в этом разделе Планировщик задач и кликаем по нему. Иногда это меню называется Панель Cron. Вот как характеризуется Cron:
"Планировщик задач позволяет вам запускать команды в указанное время без вашего участия. Это позволяет вам автоматизировать регулярно повторяющиеся работы. Планировщик задач настраиваются очень гибко и позволяют вам автоматизировать выполнение любых команд, которые вы захотите запустить. К примеру, вы можете указать планировщику удалять временные файлы каждую неделю, чтобы они не занимали слишком много места на вашем диске".
На выбор предоставляется два варианта управления Кроном:

Стандартный и Продвинутый (в стиле Unix), рассмотрим каждый из них.
Первый вариант. Кликаем по кнопке Стандартный, открывается окно установки задач:

Как видите здесь все очень просто. Нужно просто установить время выполнения команды, указав для этого в соотвествующих полях, когда будет запускаться команда, во сколько: Минут, Час, День, Месяц, День недели. И конечно же прописать саму команду на запуск в поле: Команда для запуска.
Значения можно писать как в ручную (в левом поле), так и воспользоваться выпадающим списком (стрелочки справо).
Давайте разберемся, что мы здесь написали. А написали мы следующее задание: запускать команду на исполнение:
/usr/bin/php /home/freeman/domains/public_html/cron/new_day.php
каждые 30 минут, каждые 6 часов, каждый день января месяца, если он попадает на понедельник.
После установки задания нажимаем кнопку Add New Cron Job.
Не понятно что написали? :) Давайте расмотрим второй вариант, а затем поясню подробнее. Возвращаемся на преведущую страницу.
Второй вариант. Кликаем по кнопке Продвинутый (в стиле Unix), открывается окно установки задач:

Этот вариант установки задания Крону, мне нравится больше. И хоть он и называется Продвинутый, на мой взгляд проще и удобнее.
Здесь так же как и в первом случае, нужно указать когда будет запускаться команда, так же указываем: Минуты, Часы, День, Месяц, День недели и само задание на исполнение в поле Команда. После этого нажимаем кнопку Добавить Cronjob. Задание задано. Страница обновляется:

И Вы можете добавить новое задание, повторив всю процедуру заново. Удалить задание можно нажав на крестик напротив задания справа.
Есть еще один не обязательный параметр, но я рекомендую его прописывать: это адрес электроной почты. На этот адрес будет приходить отчет об исполнении команды. Поле необязательное, но лучше адрес ввести, что бы быть в курсе дела, если что-то пойдёт не так Крон сообщит Вам об этом в письме, а если письмо пришло пустое значит всё ОК!
Что мы написали здесь? Запускать команду в 11 минут, каждого 2-го часа, каждый день, каждый месяц, 1-й , 3-й , 5-й , 7-й дни недели.
В поле выбора: Минут указываете минуту (или минуты) в которую будет запускаться задание, в поле Час указываете час (либо часы) в который(е) будет выполняться задание, а так же день(и), и месяц(ы), в каждом поле можно указать как конкретное время так и интервал.
Например, можно указать не просто 11 минут, а 11-15 (интервал), это значит, что задание будет запускаться каждые 11, 12, 13, 14, 15 минут. Или указать кокретные минуты, например: 11, 14, 18 - это значит что задание будет запускаться на 11, 14, и 18 минутах. Еще можно использовать знак * (звездочка) - обозначает каждый. Если поставить * (звездочку) в поле Минуты, то соотвественно задание будет запускаться каждую минуту, т.е. 60 раз в час.
В каждом поле можно указать, как конкретное время, так и интервал, а также использовать звездочки.
Запись */2 обозначает: каждые 2 часа . Все эти вариаты записей применимы ко всем полям (Минуты, Часы, День, Месяц, День недели) при указании задания Крону. Сами понимаете вариантов может быть миллионы, Запускай задание на выполнение, хоть каждую минуту круглый год. Конечно такая необходимость практически никогда не возникает, но теоретически такая возможность есть.
И еще имейте виду некоторые Хостинги наклыдывают ограничения, на запуск Крона, например не чаще 3 - 10 раз в час. Почему? Создается довольно ощутимая нагрузка на сервер. За нарушение Ваш аккаунт могут заблокировать.
Теперь давайте разберемся как заполняется поле Команда для запуска (в первом варианте) или Команда (во втором варианте).
Задание задаётся следующим образом.
Первым делом вы указываете путь к PHP на Вашем сервере, у меня на сервере путь такой /usr/bin/php у вас может быть другим, уточните у админов вашего сервера, после пути к PHP ставите пробел и пишите полный внутренний путь к файлу который должен запускать Cron. Допустим мне необходимо чтобы Крон запускал файл mail.php, зная внутренний путь к файлу я пишу следующее:
public_html/cron/mail.php
т.е. в корневой папке public_html, есть папка cronв которой лежит файл mail.phpа полностью команда на запуск файла mail.php будет вылядеть так:
/usr/bin/php /public_html/cron/mail.php
На разных хостингах, путь до PHP может отличаться, и записываться по разному, корневая папка расположения сайта тоже не всегда бывает public_html, поэтому если нет конкретного примера записи задания Крону, то лучше об этом спросить у администратора, описав что Вы хотите получить в итоге. Хорошая Хостинговая компания Вам всегда поможет быстро и оперативно. Если вразумительной помощи не получили - бегите оттуда, пока не поздно.
Всего Вам Доброго.
Читайте так же другие наши материалы.
Как заработать на электронных книгах?
Почтовая Рассылка - Главный инструмент Интернет-Бизнесмена.
Создаём «каркас» сайта в программе Dreamweaver CS 3.
Покупаем и Регистрируем Доменное имя для сайта.
Как заработать в Интернете на продаже ссылок?
За что платят и будут платить в Интернете деньги?
Просмотров: 39743
у Вас отличные уроки , многое ещё не понятно а так всё ок !!!!!!!
действительно помогло! рекомендую
Еще бы написали как увеличить время исполнения кроном скрипта с 30 секунд на более. Ато некоторые скрипты выполняются до минуты и он их просто выключает.
Кодировку страницы не забыли обьявить, не? Или это защита от дураков?
Тема раскрыта поверхностно.
Понятно что выполняется какой то скрипт по расписанию.
Как ставит задачу для планировщика новостных автонаполняемых сайтов? Прошу вас объясните!
Для всех вебмастеров интересующихся HTML хочу предложить редактор кода
|