Отдел продаж: работает
Техническая поддержка: работает
Многие пользователи сталкивались с тем, что некоторые программы необходимо запускать с определенной периодичностью или по расписанию, но делать это вручную удается далеко не всегда. Чаще всего такого рода потребность возникает на серверных машинах. И если на вашем сервере установлена операционная система семейства Unix (Debian, Centos, FreeBSD, Ubuntu), Cron или как еще его называют, демон-планировщик Cron - это то, что вам нужно.
Как понятно из второго названия, Cron - это специальная программа-планировщик, способная выполнять поставленные задачи по расписанию, причем неоднократно. К слову, выполнить запуск PHP-скрипта Cron также способен, не говоря уже о выполнении более тривиальных задач как в определенный отрезок времени, так и с заданной периодичностью.
Этот планировщик, получая указания от пользователя или пользователей, следует им при выполнении поставленных задач по заданным сценариям. Данные и инструкции для Cron содержатся в специальных таблицах, называемых crontab.
Как правило, в большинстве стандартных дистрибутивов Unix-подобных систем демон-планировщик Cron содержится по умолчанию и устанавливается в составе пакета программ. Он уже присутствует на виртуальном хостинге и любом тарифе виртуальных серверах VPS
Если же у вас минимальный пакет установки, то дистрибутив планировщика устанавливается следующим образом:
После этого можно считать, что планировщик успешно установлен
После запуска ОС планировщик выстраивает очередь задач от всех пользователей. Затем он также дополнительно анализирует, есть ли 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
Из описанного выше следует, что:
SHELL=/bin/bash означает, что команды из bin/bash будут использоваться для запуска Cron. Если же переменная не была указана, то необходимое значение будет позаимствовано из /etc/passwd для всех пользователей.
HOME=/ - указание корневого каталога.
MAILTO=root указывает, кому отправлять рапорт о выполнении задачи. Если результат выполнения вас не интересует, то в конце сценария следует записать Cron dev null, тогда будет приходить только уведомление об успешном завершении работы сценария или же неудачной попытке.
Выполнив задание, Cron бездействует, но при этом с определенной частотой проверяя crontab на появление новых заданий. При появлении новых заданий программа ставит их в очередь на выполнение.
Добавить задание в Cron, как и выполнить настройку уже существующего сценария, можно через консоль следующим образом:
Выше уже упоминался формат Cron-команд, который указывается без скобочек и подчиняется следующим ограничениям:
Важной особенностью команды Cron является то, что каждому параметру можно задать не одно, а несколько значений. В таких случаях каждое из них задается через запятую. Фактически это будет означать, что задача должна выполняться в каждый отрезок времени. Также можно указать интервал значений, используя значок «-», и это будет означать, что задание необходимо выполнять ежедневно, каждый час или месяц.
Формат Cron предполагает, что в строке содержится только одна команда. При этом после строки (даже если она была единственной) вы должны нажать клавишу Enter, иначе сценарий не будет принят к исполнению. И если вы допустите ошибку при заполнении нового задания, после его сохранения программа укажет вам на нее. Далее все просто - исправляете ошибку и заново сохраняете сценарий.
Напоследок, для лучшего понимания работы планировщика, представим вашему вниманию актуальные примеры crontab для FreeBSD и любых других Unix-подобных систем.
Еще одной примечательной особенностью программы является то, что после изменения в сценарии вам не нужно выполнять перезапуск Cron, потому что планировщик подхватывает изменившиеся данные автоматически. Если же сбой все-таки случился, и программа не распознала измененные данные, то Cron reboot можно выполнить через терминал при помощи команды sudo /etc/init.d/cron restart. После перезапуска все изменения наверняка будут отмечены планировщиком.
У вас остались вопросы относительно работы демоном-планировщиком Cron или все еще не слишком понятен синтаксис crontab для Ubuntu или любой другой Unix-системы? Вы можете обратиться за помощью к сотрудникам нашей техподдержки. Одним из многочисленных преимуществ использования хостинга от RigWEB является не только стабильность серверов, но и квалифицированные специалисты, которые всегда готовы ответить на ваши вопросы и оказать поддержку в решении любых вопросов в рамках своей компетенции.
Пользуйтесь профессиональным хостингом от RigWEB и достигайте максимальной продуктивности при работе над своими проектами!
Хостинг за 99 руб. от RigWEB.RU - платный виртуальный хостинг сайтов
Тарифы хостинга
Вам ответят в течение 15 минут
Популярные статьи раздела «Хостинг и Домены»
Спасибо, что выбрали RigWEB!
Этот веб-сайт использует файлы cookies. Если Вы продолжите просматривать сайт, Вы соглашаетесь и принимаете нашу политику конфиденциальности.