Он позволяет автоматически выполнять команды, скрипты или программы в заданное время: ежедневно, еженедельно, с точностью до минуты.
Без него пришлось бы вручную запускать резервное копирование, ротацию логов или обновление кеша.
⏱ Как работает cron
За расписание отвечает демон crond (cron daemon). Он запускается при старте системы и постоянно работает в фоне. Crond читает конфигурационные файлы — crontab (cron tables) — и в нужный момент выполняет указанные команды.
⏱ Существуют два уровня crontab:
— Системные — лежат в
/etc/crontab и в каталогах /etc/cron.d/, /etc/cron.daily/, /etc/cron.hourly/ и т.д. Требуют указания пользователя, от которого запускается задача.— Пользовательские — создаются командой crontab -e для каждого пользователя отдельно. Запускаются от имени этого пользователя.
⏱ Формат записи crontab
Каждая строка в crontab описывает одно задание и состоит из пяти полей времени и команды:
* * * * * команда
│ │ │ │ │
│ │ │ │ └── день недели (0-7, где 0 и 7 = воскресенье)
│ │ │ └──── месяц (1-12)
│ │ └────── день месяца (1-31)
│ └──────── час (0-23)
└────────── минута (0-59)
⏱ Специальные символы:
—
* — любое значение (каждую минуту, каждый час...)—
*/n — каждые n единиц (например, */5 в поле минут — каждые 5 минут)—
, — перечисление (например, 1,15 в поле дня — 1-й и 15-й дни)—
- — диапазон (например, 9-17 в поле часа — с 9 до 17 включительно)⏱ Управление пользовательским crontab
crontab -e # открыть текущий crontab для редактирования (или создать новый)
crontab -l # показать текущие задания
crontab -r # удалить весь crontab
crontab -u username -l # (от root) посмотреть crontab другого пользователя
⏱ Примеры заданий
Каждый день в 2:30 ночи
30 2 * * * /home/user/backup.sh
Первого числа каждого месяца в полночь
0 0 1 * * /home/user/cleanup.sh
Cron остаётся самым простым и надёжным способом автоматизации в Linux. Один раз настроил — и задачи выполняются годами без участия человека. Главное — не забывать проверять логи и не допускать конфликтов при одновременном запуске тяжёлых заданий.
#линуксятина
