Планирование периодических задач с помощью Cron в Linux
cron
- это программа Linux, которая используется для планирования выполнения команды или сценария в более поздний момент времени. Его также можно использовать для планирования периодически запускаемых команд и сценариев. Программы, запланированные с помощью cron, обычно называют Cron Jobs. Его основное использование - для задач системного администрирования, таких как регулярное резервное копирование, регулярные обновления программного обеспечения и другие подобные задачи обслуживания.
Введение
cron
работает как демон в Linux, то есть как фоновый процесс. Он позволяет пользователям планировать задания напрямую с помощью команды crontab, которая открывает файл конфигурации под названием Cron File в редакторе. Для каждого пользователя создаются отдельные файлы Cron.
Создание файла Cron и базового синтаксиса
В crontab
команда может быть выполнена с помощью -e
флаг для редактирования существующего файла Cron. Если файл еще не существует, он будет создан. Если пользователь вызывает команду в первый раз и если в системе Linux установлено несколько редакторов файлов, команда попросит пользователя выбрать редактор по умолчанию из списка редакторов.
После выбора редактора для пользователя будет создан и открыт файл cron. Теперь вы можете указать задания в файле.
Общий синтаксис для указания задания Cron:
В основном будет работать в указанные минуты (0-59), час (0-23), день месяца (1-31), месяц (1-12), день недели, (0-7, Для воскресенья можно использовать 0 или 7) в задании Cron. Для упрощения возьмем пример:
1 2 3 4 5 эхо "Привет"
Это означает команду эхо "Привет"
будет запускаться каждый пятый день недели (пятница) и каждый 3-й день месяца, каждый 4-й месяц года (апрель) во время 02:01 (2-й час первой минуты).
Если одну и ту же команду нужно запускать каждый день в 02:01, синтаксис будет выглядеть так:
1 2 * * * эхо «Привет»
В *
означает «всегда» или «для всех», например. на все месяцы, на все дни недели и т. д.
Командный оператор (,
) может использоваться для ввода списка значений, когда задача должна быть повторена. Например:
0 2,3,4 * * * эхо «Привет»
Программа будет запускаться ежедневно в 2, 3 и 4 часа ночи.
Так же, дефис (-
) оператор может использоваться для указания диапазона, для которого задача должна повторяться. Например:
0-20 2 * * * эхо «Привет»
Это запустит программу в 02:00, 02:01, 02:02 и так далее до 02:20.
Наконец, у нас есть косая черта ( /
) оператор. Этот оператор используется для указания значения интервала, в соответствии с которым задача будет повторяться. Например. */15
в поле минут означает, что задание должно повторяться каждые 15 минут. 2-10/2
в поле часов указывает, что задача должна повторяться с 2:00 до 10:00 через каждые 2 часа (2:00, 4:00, 6:00, 8:00, 10:00).
* / 15 2-10 / 2 * * * эхо «Привет»
После того, как вы сделали запись в файле Cron, сохраните файл и выйдите из редактора.
Вы должны увидеть "Установка нового crontab" сообщение в терминале после сохранения и выхода из файла crontab.
Макросы
Некоторые макросы предопределены в Cron, которые определяют некоторые обычно требуемые временные интервалы, такие как каждый час, каждый день, каждый месяц и т. Д.
Чтобы запускать задачу один раз в день в начале дня, то есть в 00:00, используйте макрос @ежедневно
. Это эквивалентно 0 0 * * *
.
Вы можете поместить это в файл Cron таким же образом, как описано ранее.
Аналогичным образом можно использовать другие макросы, а именно. @hourly
(0 минут каждого часа), @monthly
(00:00 первого числа месяца), @weekly
(00:00 первого дня недели, @yearly
(00:00 первого января каждого года), @перезагружать
(при каждом запуске компьютера).
Вывод
В этой статье мы узнали, как добавить Cron Jobs для регулярного выполнения в Linux. Правильное использование Cron Jobs пригодится даже для самых утомительных ручных задач, с которыми сталкивается пользователь, например. регулярное удаление старых журналов, архивирование всех видов холодных данных (данные, к которым редко обращаются) и т. д.