cron
Что такое cron?
cron — старая установка времени в системах Unix. Список называется crontab. Каждая строка — пять полей времени и одна команда: минута, час, день месяца, месяц и день недели. Звезда значит каждое значение этого поля. Работа открывается от имени твоего пользователя. Окно она не открывает. Результат может уйти в почту или в файл. Таймер systemd может сделать похожую работу, но это не сам cron.
Для чего нужен cron?
cron нужен для резервной копии, уборки и ночного отчёта. Чтобы не писать одну и ту же команду руками каждый день.
- Каждую ночь снимать копию базы
- Удалять старый временный файл
- Отправлять утренний отчёт
- Запускать проверку раз в час
Что можно делать с cron?
Через cron команду привязывают к календарю. Он не проверяет, верна ли команда. Если путь или право неверны, работа может тихо упасть. Экрана нет, поэтому результат нужно писать в файл. Та же работа может начаться снова, пока прошлая не кончилась.
Сложно ли освоить cron?
Написать одну строку легко. Трудность в часовом поясе и в пути. Часы сервера могут быть не твоими часами. Короткое имя внутри команды может не найтись в окружении cron. Пишут полный путь. Неверная звезда может запускать команду каждую минуту.
Плюсы и ограничения
Плюс: работа открывается без тебя, строка короткая и на Linux-сервере он уже есть. Ограничение: ошибка остаётся тихой, и работы могут наслаиваться. cron — не сама программа. Он только вызывает команду, когда приходит время.
Основные понятия
Пять полей говорят время. Шестая часть — команда. Пользователь говорит, от чьего имени открывается работа.
- Звезда значит каждое значение
- 0 3 * * * — каждую ночь в 03:00
- crontab -l показывает список
- Результат сам на экран не выходит
Короткий пример
Эта строка вызывает команду копии каждую ночь в 03:00. Сама команда здесь не написана, только её путь.
0 3 * * * /usr/local/bin/backup
Частые вопросы
- cron — язык программирования? Нет. Он вызывает готовую команду, когда приходит время.
- Когда работа падает, это видно на экране? Нет. Окна нет. Результат нужно писать в файл или журнал.
- Звезда значит только понедельник? Нет. Звезда значит каждое значение этого поля.