Более 700 любимых клиентов

Отдел продаж: 1200-1700

Техническая поддержка: работает

Мощные серверы

Канал 1Гб/сек. Встроенная защита от DDoS атак.
Без установочной платы. Администрирование в подарок.

Быстрый хостинг

Сайтов и баз: не ограничено. SSL сертификат в подарок.
Тестовый период: 14 дней

Быстрые VPS / VDS серверы

Скоростные SSD диски. Безлимитный трафик.
Администрирование в подарок.

Планировщик CRON. Как его установить и как им пользоваться - инструкция

Многие пользователи сталкивались с тем, что некоторые программы необходимо запускать с определенной периодичностью или по расписанию, но делать это вручную удается далеко не всегда. Чаще всего такого рода потребность возникает на серверных машинах. И если на вашем сервере установлена операционная система семейства Unix (Debian, Centos, FreeBSD, Ubuntu), Cron или как еще его называют, демон-планировщик Cron - это то, что вам нужно.

Как понятно из второго названия, Cron - это специальная программа-планировщик, способная выполнять поставленные задачи по расписанию, причем неоднократно. К слову, выполнить запуск PHP-скрипта Cron также способен, не говоря уже о выполнении более тривиальных задач как в определенный отрезок времени, так и с заданной периодичностью.

Этот планировщик, получая указания от пользователя или пользователей, следует им при выполнении поставленных задач по заданным сценариям. Данные и инструкции для Cron содержатся в специальных таблицах, называемых crontab.

Установка, принцип работы и настройка Cron

Как правило, в большинстве стандартных дистрибутивов Unix-подобных систем демон-планировщик Cron содержится по умолчанию и устанавливается в составе пакета программ. Он уже присутствует на виртуальном хостинге и любом тарифе виртуальных серверах VPS

Если же у вас минимальный пакет установки, то дистрибутив планировщика устанавливается следующим образом:

  • Установка для Red Hat:
    1. Откройте консоль.
    2. Введите yum install vixie-cron.
  • Установка Cron для Debian-подобных систем:
    1. Откройте консоль.
    2. Введите apt-get install cron.

После этого можно считать, что планировщик успешно установлен

Команды Cron и принцип работы планировщика

После запуска ОС планировщик выстраивает очередь задач от всех пользователей. Затем он также дополнительно анализирует, есть ли crontab в /var/spool/cron и соответствуют ли файлы задач информации о пользователях, представленной в /etc/passwd. Важно помнить, что каждой учетной записи доступен один crontab, но при этом в нем можно размещать много задач.

После окончания проверки Cron считывает задания и время их исполнения из crontab и, если это необходимо, приступает к запуску сценариев.

Синтаксис crontab имеет такой вид:

[минута][час][день][месяц][неделя][пользователь][команда]

С настройками по умолчанию /etc/crontab выглядит так:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

05 * * * * root run-parts /etc/cron.hourly

09 9 * * * root run-parts /etc/cron.daily

13 8 * * 0 root run-parts /etc/cron.weekly

58 6 3 * * root run-parts /etc/cron.monthly

Из описанного выше следует, что:

  • задача из /etc/cron.hourly исполняется в пятую минуту каждого часа;
  • задача из /etc/cron.daily будет исполняться ежедневно в девятую минуту девятого часа;
  • задача из /etc/cron.weekly будет исполняться каждое воскресенье на тринадцатой минуте восьмого часа;
  • задача из /etc/cron.monthly исполняется ежемесячно, в третий день на пятьдесят восьмой минуте шестого часа.

SHELL=/bin/bash означает, что команды из bin/bash будут использоваться для запуска Cron. Если же переменная не была указана, то необходимое значение будет позаимствовано из /etc/passwd для всех пользователей.

HOME=/ - указание корневого каталога.

MAILTO=root указывает, кому отправлять рапорт о выполнении задачи. Если результат выполнения вас не интересует, то в конце сценария следует записать Cron dev null, тогда будет приходить только уведомление об успешном завершении работы сценария или же неудачной попытке.

Выполнив задание, Cron бездействует, но при этом с определенной частотой проверяя crontab на появление новых заданий. При появлении новых заданий программа ставит их в очередь на выполнение.

Настройка Cron (Centos, FreeBSD, Ubuntu)

Добавить задание в Cron, как и выполнить настройку уже существующего сценария, можно через консоль следующим образом:

  1. Для начала решите, какие программы будут выполняться, а также узнайте путь к ним. Последнее можно сделать, перейдя в каталог с программой и используя команду cd.
  2. Далее, используя команду pwd, посмотрите полный путь к месту размещения нужной программы. При этом убедитесь, что у вас есть права на чтение и исполнение необходимого файла.
  3. Наберите команду crontab -e. После ее выполнения откроется редактор vi, где и будет выполняться настройка Cron относительно отдельно взятого сценария.

Выше уже упоминался формат Cron-команд, который указывается без скобочек и подчиняется следующим ограничениям:

  • в поле [минута] можно вводить значения от 0 до 59;
  • в поле [час] можно вводить значения от 0 до 23;
  • в поле [день] можно вводить значения от 1 до 31;
  • в поле [месяц] можно вводить значения от 1 до 12;
  • в поле [неделя] можно вводить значения от 0 до 7.

Важной особенностью команды Cron является то, что каждому параметру можно задать не одно, а несколько значений. В таких случаях каждое из них задается через запятую. Фактически это будет означать, что задача должна выполняться в каждый отрезок времени. Также можно указать интервал значений, используя значок «-», и это будет означать, что задание необходимо выполнять ежедневно, каждый час или месяц.

Формат Cron предполагает, что в строке содержится только одна команда. При этом после строки (даже если она была единственной) вы должны нажать клавишу Enter, иначе сценарий не будет принят к исполнению. И если вы допустите ошибку при заполнении нового задания, после его сохранения программа укажет вам на нее. Далее все просто - исправляете ошибку и заново сохраняете сценарий.

Напоследок, для лучшего понимания работы планировщика, представим вашему вниманию актуальные примеры crontab для FreeBSD и любых других Unix-подобных систем.

  • Выполнение команды из crontab каждые 5 минут */5 * * * * /home/user1/script.pl
  • Задача будет исполняться каждые 5 часов на 1-й минуте 1 */5 * * * /home/user1/script.pl
  • Выполнение поставленной задачи ежемесячно 1-го числа на 9-й минуте 8-го часа 9 8 1 * * /home/user1/script.pl

Еще одной примечательной особенностью программы является то, что после изменения в сценарии вам не нужно выполнять перезапуск Cron, потому что планировщик подхватывает изменившиеся данные автоматически. Если же сбой все-таки случился, и программа не распознала измененные данные, то Cron reboot можно выполнить через терминал при помощи команды sudo /etc/init.d/cron restart. После перезапуска все изменения наверняка будут отмечены планировщиком.

У вас остались вопросы относительно работы демоном-планировщиком Cron или все еще не слишком понятен синтаксис crontab для Ubuntu или любой другой Unix-системы? Вы можете обратиться за помощью к сотрудникам нашей техподдержки. Одним из многочисленных преимуществ использования хостинга от RigWEB является не только стабильность серверов, но и квалифицированные специалисты, которые всегда готовы ответить на ваши вопросы и оказать поддержку в решении любых вопросов в рамках своей компетенции.

Пользуйтесь профессиональным хостингом от RigWEB и достигайте максимальной продуктивности при работе над своими проектами!

Заказать хостинг сайтов

Хостинг за 99 р. от RigWEB.RU - платный виртуальный хостинг сайтов

Тарифы хостинга
Заявка в Службу технической поддержки

Вам ответят в течение 15 минут

Спасибо, что выбрали RigWEB!

Получить консультацию
специалиста
Вы получите ответ в течение 15 минут
Получить консультацию
специалиста в подборе VPS
Вы получите ответ в течение 15 минут
Заявка на бесплатный перенос сайта
Данные для переноса

Откуда перенести:

Список сайтов для переноса:
(укажите через запятую)

Доступ к текущему хостингу Чтобы мы смогли перенести сайты с Вашего текущего хостинга,нам необходимы реквизиты доступа в панель управления.

Логин

Пароль

Информация по Вашему аккаунту

Электронная почта

Фамилия, Имя,
Отчество

Комментарий к заказу

Получить консультацию специалиста
в подборе VPS
Пример

Память: 2GB RAM

Диск: 5GB SSD

Для сайта на Wordpress посещаемость 500 человек в сутки

Получить консультацию специалиста
в подборе выделенного сервера
Пример

Процессор: 2xXeon E5-2620

Память: 32 Gb

Диски: 2x1Tb SATA 2x240 SSD

RAID: контроллер + батарейка

Комментарий: нужен сервер с двумя блоками питания

Ваш запрос находится в стадии обработки.

Мы ответим Вам в течение 15 минут.

Спасибо, что выбрали RigWEB!