Это то, что приходит на ум, когда речь заходит о "выполнении задач через определенные промежутки времени" в Linux и UNIX — crontab
. Система сама выполняет повторяющиеся задачи, что так удобно! Но если не разобраться, это может стать настоящей головной болью, и действительно, это существо может быть одновременно и ангелом, и демоном. На основе своего опыта многократной борьбы с crontab
я хочу поделиться, что такое crontab
, как его использовать и несколько полезных советов.
Что такое crontab?
crontab
— это, простыми словами, инструмент для "планирования выполнения задач автоматически и регулярно" в системах Linux и UNIX. С помощью этой настройки я могу легко справляться с рутинными задачами, которые повторяются каждый день, каждую неделю или каждый месяц. Просто установите настройки, и он будет выполнять задачи за меня, так что я чувствую себя так, будто у меня есть личный секретарь.
Все это становится возможным благодаря демону cron. Демон cron проверяет записи в файле crontab
и выполняет команды в указанное время, поэтому я с удовольствием использую crontab
.
Изучаем команды crontab
В crontab
есть несколько полезных команд. Зная их, можно не только сэкономить время, но также удобно проверять и изменять настройки.
- crontab -e : команда для открытия файла
crontab
для добавления или изменения задач. - crontab -l : показывает содержимое файла
crontab
текущего пользователя. - crontab -r : удаляет файл
crontab
текущего пользователя. (Обращайтесь осторожно)
Каков формат файла crontab?
Каждая задача в файле crontab
представлена в виде одной строки, где каждая строка состоит из пяти полей времени и одной команды. Когда впервые видишь поля, может показаться, что это сложно, но если рассматривать каждое по отдельности, на самом деле это довольно просто.
* * * * * /path/to/command
- - - - -
| | | | +----- День недели (0 - 7) (воскресенье - 0 или 7)
| | | +------- Месяц (1 - 12)
| | +--------- День (1 - 31)
| +----------- Час (0 - 23)
+------------- Минута (0 - 59)
Каждое поле может содержать числа или *
, где *
обозначает все значения. Например, * * * * *
означает "выполнять каждую минуту, каждый час, каждый день, каждый месяц, в любой день недели". Короче говоря, это выполняется каждую минуту. Если уметь это использовать, можно действительно организовать разнообразное планирование.
Запуск задач каждые 5 минут: пример с crontab
Например, у нас есть команда */5 * * * * /path/to/myscript.sh
. Эта настройка означает, что скрипт myscript.sh
будет выполняться каждые 5 минут.
*/5
: каждые 5 минут*
: обозначает любое время*
: обозначает любой день*
: обозначает любой месяц*
: обозначает любой день недели
Итак, скрипт выполняется каждые 5 минут в течение 24 часов в сутки. Не нужно беспокоиться, он запланирован на выполнение, что очень удобно!

Разнообразные примеры использования
С помощью crontab
можно настраивать задачи в соответствии с различными ситуациями. Давайте посмотрим на несколько примеров, как можно использовать его.
- Запуск скрипта каждый час
0 * * * * /path/to/script.sh
Запускает скрипт в 0 минут каждого часа, например в 12:00, 13:00, 14:00… - Запуск резервного копирования каждый день в 3 часа ночи
0 3 * * * /path/to/backup.sh
Если ежедневно проводить резервное копирование в 3 часа ночи, это может уменьшить количество ночной работы. - Запуск каждый 1-й и 15-й день месяца в 2 часа ночи
0 2 1,15 * * /path/to/script.sh
Полезно периодически выполнять важные дела в начале и середине месяца. - Запуск только в выходные дни
30 8 * * 6,7 /path/to/weekend_script.sh
Настройка для выполнения скрипта каждую субботу и воскресенье в 8:30 утра.
Что нужно учитывать при настройке crontab
Задачи crontab
в Linux сохраняются даже после перезагрузки системы. Однако есть один важный момент: если задача запланирована на время, когда система была выключена, она не будет выполнена. Например, если задача запланирована на 15:00, а система включается в 16:00, задача в 15:00 будет пропущена.
Чтобы исправить эту ситуацию, можно использовать программу anacron. Anacron — это инструмент, который выполняет "пропущенные задачи", даже если система была выключена. Это полезно для.Combat вашей задачи crontab
, когда необходимо обязательно выполнять задание через определенные промежутки времени.
Правильное использование crontab
может быть очень полезным для меня. Автоматизация важных задач благодаря планированию времени не только сэкономит время, но и снизит вероятность ошибок. Конечно, в начале это может показаться сложным из-за формата, но как только привыкнете, вас ждет невероятное удобство. Почему бы не погрузиться в мир crontab
читая эту статью?
댓글이 없습니다.