cron — сервис Linux для запуска команд и скриптов по расписанию. Задания пользователя редактируют через crontab -e; каждая строка содержит время запуска и команду, которую нужно выполнить.
cron — сервис Linux для запуска команд и скриптов по расписанию. Задания пользователя редактируют через crontab -e; каждая строка содержит время запуска и команду, которую нужно выполнить.
Что такое cron
Cron — это планировщик задач в Linux. Он запускает команды и скрипты в заданное время: каждую минуту, каждый час, ежедневно, по дням недели или по более сложному расписанию.
Как открыть расписание пользователя
crontab -e
crontab -lcrontab -e открывает расписание для редактирования, а crontab -l показывает уже добавленные задания.
Структура cron-выражения
* * * * * command
│ │ │ │ │
│ │ │ │ └── день недели: 0-7
│ │ │ └──── месяц: 1-12
│ │ └────── день месяца: 1-31
│ └──────── час: 0-23
└────────── минута: 0-59Примеры
0 2 * * * /home/alex/scripts/backup.sh
*/15 * * * * /home/alex/scripts/check-service.sh
0 9 * * 1-5 /home/alex/scripts/report.sh >> /var/log/report.log 2>&1первый пример запускает backup каждый день в 02:00;
второй запускает проверку каждые 15 минут;
третий запускает отчёт по будням в 09:00 и записывает стандартный вывод и ошибки в лог.
Что важно учитывать
Cron запускает команды в ограниченном окружении. У него может быть другой PATH, отсутствовать привычные переменные окружения и доступ к SSH agent. Поэтому в заданиях лучше использовать абсолютные пути к скриптам и программам, явно задавать нужные переменные и перенаправлять вывод в лог.
Проверка скрипта
Скрипт должен быть исполняемым и иметь корректный shebang.
#!/usr/bin/env bash
chmod +x /home/alex/scripts/backup.sh
/home/alex/scripts/backup.shКак ответить на собеседовании
Cron запускает задачи по расписанию. Я добавляю их через crontab -e, где указываю пять полей времени и команду. В cron использую абсолютные пути, учитываю ограниченное окружение и направляю stdout и stderr в логи, чтобы можно было диагностировать ошибки.
Оцени свой прогресс