Cron Jobs — пособие для начинающих
Cron — один из часто используемых инструментов для Unix-систем. Учимся писать задания в Cron вручную и с помощью простых и удобных веб-инструментнов.
125К открытий136К показов
Cron — один из часто используемых инструментов для Unix-систем. Его используют для планирования выполнения команд на определённое время. Эти «отложенные» команды или задания принято называть «Cron Jobs». Такой инструмент отлично подходит для регулярных бэкапов, мониторинга дискового пространства, удаления файлов (например, логов) и много чего ещё. В этой статье будет рассказано о работе с Cron на Linux.
Введение
Шаблон задания для Cron выглядит примерно так:
Вот иллюстрация этого же шаблона, которую можно сохранить себе:
Звёздочками обозначены конкретные блоки времени.
Для отображения содержимого crontab-файла текущего пользователя используйте команду:
Для редактирования заданий пользователя есть команда:
Если эта команда выполняется в первый раз, вам предложат выбрать редактор для Cron:
Выбирайте на своё усмотрение. Вот так изначально выглядит crontab-файл:
В этом файле как раз нужно перечислять одну за другой все команды.
Чтобы изменить crontab-файл другого пользователя (например, ostechnix):
Ниже приведены несколько примеров cron-заданий:
- Чтобы выполнять команду каждую минуту, задание должно быть такое:* * * * * <исполняемая-команда>
- Похожее задание, только команда будет вызываться каждые пять минут:*/5 * * * * <исполняемая-команда>
- Вызывать команду 4 раза в час (каждые 15 минут):*/15 * * * * <исполняемая-команда>
- Чтобы выполнить команду каждый час в 30 минут, пишем:30 * * * * <исполняемая-команда>Т. е. команда будет выполняться не каждые 30 минут, а тогда, когда значение минут будет равно 30 (например, 10:30, 11:30, 12:30 и т. д.).
- Значения времени можно комбинировать, перечислив их через запятую. Следующий код будет выполнять команду три раза в час: в 0, 5 и 10 минут.0,5,10 * * * * <исполняемая-команда>
- Выполнять команду каждый час будет следующее задание:0 * * * * <исполняемая-команда>
- Выполнение команды каждые два часа:0 */2 * * * <исполняемая-команда>
- Чтобы выполнять команду каждый день (в 00:00):0 0 * * * <исполняемая-команда>
- Выполнение команды каждый день в 03:00:0 3 * * * <исполняемая-команда>
- Выполнение команды каждое воскресенье (sunday):0 0 * * SUN <исполняемая-команда>
- Другой вариант задания, которое будет выполнять команду каждое воскресенье (естественно, тоже в 00:00):0 0 * * 0 <исполняемая-команда>
- Выполнение команды каждый день с понедельника по пятницу:0 0 * * 1-5 <исполняемая-команда>
- Следующее задание будет выполнять команду каждый месяц, 1-го числа в 00:00:0 0 1 * * <исполняемая-команда>
- Выполнять команду в 16:15 каждого первого числа месяца будет это задание:15 16 1 * * <исполняемая-команда>
- Выполнение команды каждые три месяца:0 0 1 */3 * <исполняемая-команда>
- Выполнение команды в строго определённое время и месяц:5 0 * 4 * <исполняемая-команда>
- Задание будет вызывать команду в начале каждого полугодия (в 00:00 1-го дня):0 0 1 */6 * <исполняемая-команда>
- Выполнение команды каждый год 1-го января в 00:00:0 0 1 1 * <исполняемая-команда>
Ещё существуют готовые задания:
@reboot
— одиночное выполнение команды при загрузке;@yearly
— раз в год;@annually
— тоже раз в год;@monthly
— раз в месяц;@weekly
— один раз в неделю;@daily
— раз в день;@midnight
— тоже раз в день;@hourly
— раз в час.
Чтобы выполнять команду каждый раз после перезапуска сервера, используйте это задание:
Команда для очистки всех заданий текущего пользователя:
Чтобы узнать о подробностях, есть команда:
Вышеперечисленного уже должно хватить для базовой работы с Cron и составления заданий.
Синтаксис crontab-генераторов
Процесс написания заданий сильно упрощают веб-инструменты. Они не требуют знаний синтаксиса Cron, потому что у них графический интерфейс, а задания генерируются в соответствии с вводимыми данными. Сайт генерирует задание, которое можно будет просто скопировать и вставить в crontab-файл.
Crontab.guru
crontab.guru — отличный сайт, чтобы изучить различные примеры cron-заданий. Просто введите данные и сайт самостоятельно сгенерирует конечное задание.
На сайте есть разделы, посвящённые примерам и советам.
Crontag Generator
crontab-generator.org — ещё один сайт, который помогает быстро сгенерировать crotab-выражения. Принцип такой же: нужно ввести все необходимые данные в формы и нажать кнопку «Generate Crontab Line» внизу страницы.
Вот такое конечное выражение вы увидете на сайте:
Помимо этого, есть веб-инструмент «Crontab UI», который обеспечивает не только простоту создания crontab-заданий, но и безопасность. Вот статья, посвящённая этому инструменту.
125К открытий136К показов