Cron (Крон) — все о этом планировщике задач и его возможностях
Достаточно часто, при работе с крупными проектами, мы стараемся сложить с себя хотя бы часть рутинных дел. Если речь идет о крупных сайтах, серверах, или сложных онлайн-сервисах, то подобными задачами могут быть:
- Сканирование на наличие вредоносных программ;
- Составление отчетов;
- Рассылка;
- Удаление неактуальных данных, и многое другое.
В таких случаях, вполне логичным решением, будет переложить выполнение всех этих задач, на специально разработанное программное обеспечение, которое могло бы запускать программы или выводить оповещения, в нужное нам время, с заданной периодичностью.
Именно для выполнения этой функции используется планировщик Cron (Крон). С помощью этой программы, вы сможете запускать нужные программы (например, антивирус), в заданное вами время, с нужной периодичностью, или выводить оповещения, которые бы напоминали о необходимости проплатить хостинг, продлить домен, и т.д.
Table of content
Что такое Cron?
На многих сайтах, можно прочитать о том, что Cron, является классическим демоном. Подобное утверждение звучит достаточно странно, но только для тех, кто не владеет специальной терминологией. Дело в том, что «демон», он же «daemon» — это одна из разновидностей программного обеспечение для UNIX, характерной чертой которой, является запуск и работа в фоновом режиме. Как правило, такие программы запускаются во время загрузки системы.
«Демонов», используют для:
- Управления оборудованием;
- Обслуживание серверов;
- Выполнение различных задач, по заданному расписанию.
Как видите, последний пункт напрямую касается планировщика задач Cron.
Эта программа была разработана одним из пионеров компьютерных наук – Кеном Томпсоном. Само название, Cron (Крон), является отсылкой к слову «кронос», которое переводится как «время».
Что такое Cron задачи?
По сути дела, задача для данной программы, подразумевает правильно заданные временные параметры, а также указание, где находится файл, который нужно будет запустить.
Особенности работы с Cron
Для того, чтобы добавить задачу для Cron, необходимо будет заполнить специальный файл для заданий – «crontab». Этот файл будет содержать всю необходимую информацию о том, в какое время, и какие именно программы, нужно будет запускать, от имени конкретного пользователя. Для того, чтобы можно было изменять файл crontab, не прибегая к остановке программы, используется одноименная программа (crontab).
Существует три основные команды, для редактирования и просмотра списка задач Крон:
- «Crontab -l» — выводит содержимое действующего файла с расписанием задач;
- «Crontab -r» — удаление расписания задач;
- «Crontab -e» — редактирование расписания задач.
Непосредственно расписание задач, для Cron (Крон), выглядит как таблица с шестью колонками. Пять колонок, ответственны за время выполнения задачи:
- Минута;
- Час;
- День;
- Месяц;
- День недели.
С их помощью, можно максимально точно задать время запуска конкретной программы, тем не менее у Cron (Крон), есть одна особенность, которая ограничивает возможность задать дату выполнения задачи. Дело в том, что практически все условия, касающиеся времени выполнения задачи, в Крон, проверяются по логическому правилу «И».
Например: 10 минут и 18 часов и 14 и Июня. Что вместе дает 14.06, в 18:10.
Однако, если вам нужно задать одновременно параметры «день недели» и «день месяца», то они уже будут обрабатываться по правилу «ИЛИ». Проще говоря, вы не сможете настроить запуск программы строго в пятницу, 13-е. Или в каждую пятницу, или каждый месяц, тринадцатого числа.
Кроме того, в планировщике задач Cron, можно задавать запуск со сдвигом в несколько минут. Например, существует возможность запуска программы каждые пять минут, начиная с конкретной даты и времени.
Также, необходимо четко помнить о следующих особенностях:
- Команды, с помощью которых, мы формулируем задачи в Cron, нельзя разделять на множество строк, даже несмотря на то, что они используют стандартный синтаксис;
- Таблица в файле crontab, обязательно должна оканчиваться пустой строкой, в противном случае, могут быть проигнорированы или последняя строка, или весь файл;
- Файлы, находящиеся в каталогах, которые сканируются автоматически, не должны содержать в своем имени точку. В противном случае, они могут быть проигнорированы;
- Данные, которые выводятся в результате запуска программ, отправляются пользователю, от имени которого настраивалось расписание, либо по указанному адресу электронной почты, при помощи специальной директивы «MAILTO».
Также нельзя не упомянуть и о дополнительных функциях Cron, а именно:
- «-j jitter» — установление некоторого разброса по времени, для выполнения програмы;
- «-m mailto» — отправка отчетов на указанный адрес почты;
- «-x debugflag[,….]» — включение записи отладочных данных;
- «-j rootjitter» — создание разброса по времени для пользователя «root».
Крайне важным является то, что содержание файла crontab, в обязательном порядке проверяется программой, с периодичностью раз в минуту. В случае обнаружения изменений, возможна синхронизация с другими аналогичными файлами.
Графические интерфейсы для Cron
Разумеется, работать из командной строки, без графического интерфейса, удобно не всем. Соответственно, для удобства пользователей в Cron (Крон), были созданы специальные графические оболочки, а именно:
- Gnome Shelude
Эта программа использует для управление таблицей crontab, такие средства как vixie-cron, at, dcron. Как правило, её использует для дистрибутивов Debian.
Данная программа обладает достаточно простым и понятным графическим интерфейсом, с помощью которого вы без труда сможете задать время для одинарного выполнения задачи, или регулярный запуск программы по заданным вами условиям.
Отдельно стоит сказать о том, что в этой программе можно создавать шаблоны для задач. Кроме того, в Gnome Shelude, нельзя выполянть задания, которые требуют прав администратора. Для этого, нужно запускать программу в режиме суперпользователя.
Запуск в режиме суперпользователя осуществляется из консоли, с помощью команды «gksu gnome-schedule».
- KCron
Графический интерфейс для планировщика задач Cron (Крон), который работает в рабочей среде KDE. В современных версиях, данная программа, является модулем, который можно найти в настройках системы. Для этого, зайдите в раздел по системному администрированию, и выберите пункт «Планировщик задач».
- Crontab UI
Бесплатное ПО, с открытым исходным кодом, которое написано с использованием NodeJS. Обладает достаточно простым и понятным графическим интерфейсом, который очень удобен в работе в Cron (Крон).
Стоит отдельно отметить такие возможности как:
- Резервное копирование заданий;
- Возможность импортирования или экспортирования задач для других систем;
- Возможность сохранения файлов crontab.
- Планировщик Cron в ISPmanager
Вполне логично, что в одной из самых популярных панелей управления хостинга, есть свой собственный графический интерфейс для Cron (Крон). Он представлен в виде модуля, под названием «Планировщик (cron)».
Для его использования, у администратора должны быть установлены права суперпользователя.
Похожие программы
Разумеется, планировщик задач Cron (Крон), не является единственным и неповторимым, и для того, чтобы иметь возможность пользоваться его функционалом, не обязательно устанавливать Unix-системы.
Аналогами Cron, для Windows являются:
- Task Sheluder;
- NnCron.
Вывод
Планировщик для задач Cron (Крон), является крайне удобным и полезным инструментом, который обязателен к использованию для крупных проектов. С его помощью, вы сможете настроить запуск конкретных программ, или отображение оповещений, в нужное вам время, с нужной периодичностью.
Он достаточно прост и удобен для использования, однако в стандартной версии не имеет графического интерфейса, что является препятствием для многих пользователей.
Для тех, кто не может пользоваться этой программой без графического интерфейса, существует множество качественных оболочек, которые оптимизированы для работы с разными оболочками, или реализованы в качестве модулей для систем управления серверами.
Также существует достаточно большое количество альтернатив, для других ОС.
”FAQ
Как создать задачу в Cron?
Для создания задачи в Cron необходимо использовать команду crontab -e, которая открывает редактор для редактирования списка задач. В этом файле нужно добавить строку, содержащую информацию о задаче и о том, как и когда ее выполнять. Строка должна иметь следующий формат:
* * * * * command
Где первые пять символов задают интервал выполнения задачи, а последний символ задает команду, которую нужно выполнить. Например, чтобы запустить задачу каждый день в полночь, нужно добавить следующую строку:
0 0 * * * command
Как удалить задачу из Cron?
Для удаления задачи из Cron нужно снова использовать команду crontab -e для открытия файла с задачами и удалить строку, соответствующую задаче, которую вы хотите удалить. После удаления строки нужно сохранить файл, и задача будет удалена из Cron.
Как изменить интервал выполнения задачи в Cron?
Чтобы изменить интервал выполнения задачи в Cron, нужно сначала найти строку с задачей в файле crontab. После этого нужно изменить первые пять символов в строке, которые задают интервал выполнения. Например, если вы хотите изменить задачу, чтобы она запускалась каждый час вместо каждых 30 минут, то нужно изменить строку с задачей на следующую:
0 * * * * command
Как запустить задачу в фоновом режиме с помощью Cron?
Чтобы запустить задачу в фоновом режиме с помощью Cron, нужно использовать символ "&" в конце команды, которую нужно выполнить. Например, если вы хотите запустить задачу, но не ждать ее завершения, то нужно добавить символ "&" в конец команды, например:
* * * * * command &
Это позволит задаче запуститься в фоновом режиме, и вы сможете продолжать работу с другими задачами, не ожидая ее завершения.