Настройка планировщика Cron в Linux

Организация планировщика задач Cron в Linux может быть выполнена через утилиту Crontab. Этот инструмент позволяет автоматизировать запуск заданий в фоновом режиме по расписанию.

 

Что такое cron?

Cron - это программа-планировщик задач, которая используется для запуска задач в определенное время.

 

Команда Crontab используется для настройки Cron. Crontab создает файл с именем crontab, который содержит команды и инструкции для запуска демона Cron.

 

Конфигурационные файлы

Существует два файла, которые регулируют доступ к планировщику (по умолчанию они не создаются):

 

/etc/cron.allow - этот файл содержит имена пользователей, которые могут запускать задания Cron;

/etc/cron.deny - этот файл содержит имена пользователей, которые НЕ могут запускать задания Cron.

Если файл cron.allow существует, только пользователи, перечисленные в нем, могут использовать Cron, а файл cron.deny не учитывается. Если файл cron.allow отсутствует, то пользователи, указанные в файле cron.deny, не имеют доступа к планировщику Cron.

 

Оба файла имеют формат - каждое имя пользователя должно быть записано на отдельной строке без использования пробелов.

 

Файлы контроля доступа считываются при каждой попытке добавления или удаления задачи в Cron.

 

Параметры команды Crontab

 

crontab -e Редактирование или создание файла расписания для текущего пользователя

crontab -l Вывод содержимого расписания текущего пользователя

crontab -r Удаление файла расписания текущего пользователя

crontab -u user Работа с расписаниями конкретных пользователей (доступно только суперпользователю)

 

Каждая запись в crontab включает шесть полей, которые указываются в следующем порядке:

minute(s) hour(s) day(s) month(s) weekday(s) command(s)

Поля отделяются друг от друга пробелами или знаками табуляции. Первые пять полей содержат числовые значения, а последнее поле - команду, которую необходимо выполнить. Ниже представлено краткое описание каждого поля:

Поле Диапазон значений Описание
minute 0-59 Минута запуска команды
hour 0-23 Час запуска
day 1-31 Число (день) запуска
month 1-12 Месяц запуска
weekday 0 - 6 День недели запуска (воскресенье = 0, понедельник = 1, вторник = 2 и т.д.)
command   Последовательность команд для выполнения. Это могут быть команды, исполняемые файлы (например, скрипты) или комбинации файлов.

 

Для уточнения: в каждом из первых пяти полей можно указывать конкретные значения, разделяя их запятыми. Также можно указывать диапазоны значений, используя тире. Например, поле "month" можно настроить таким образом, чтобы задание выполнялось только в марте и июне, указав значения "3,6".

Кроме того, в каждом поле можно использовать специальный символ *, который означает "любое значение". Например, если указать * в поле "hour", задание будет выполняться каждый час.

 

Примеры использования планировщика Cron:

1. Запуск скрипта каждый понедельник в 9:00 и 18:00 часов:

0 9,18 * * 1 /home/mhost/script.sh

В данном случае скрипт будет запускаться в 9:00 и 18:00 каждого понедельника. Здесь первое поле означает 0 минут, второе - 9 и 18 часов, третье и четвертое - любой день и любой месяц (звездочки), а пятое - только в понедельник (1).

 

2. Запуск скрипта каждый день в 0:30 и 12:30:

30 */12 * * * /home/mhost/script.sh

В этом примере скрипт будет запускаться каждый день в 0:30 и 12:30. Здесь первое поле означает 30 минут, второе - любой час, третье и четвертое - любой день и любой месяц (звездочки), а пятое - любой день недели (звездочка).

 

3. Запуск команды каждый месяц 1 числа в 12:00:

0 12 1 * * /home/mhost/script.sh

В данном случае команда будет выполняться каждый месяц в 12:00 первого числа. Здесь первое поле означает 0 минут, второе - 12 часов, третье - 1 число любого месяца, четвертое - любой месяц (звездочка), а пятое - любой день недели (звездочка).

 

4. Запуск скрипта в полночь с понедельника по пятницу:

0 0 * * 1-5 /home/mhost/script.sh

В данном случае скрипт будет запускаться в полночь (0:00) с понедельника по пятницу. Здесь первое поле означает 0 минут, второе - 0 часов, третье и четвертое - любой день и любой месяц (звездочки), а пятое - понедельник (1) до пятницы (5), указанные через дефис.

 

  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?