У цій статті
Що таке Crontab?
Crontab (cron table) — це планувальник завдань на основі часу в Unix-подібних операційних системах. Він дозволяє планувати автоматичне виконання команд або скриптів через задані інтервали — від кожної хвилини до одного разу на рік.
Кожен користувач системи може мати власний файл crontab, а також існує загальносистемний crontab. Файл crontab містить список завдань cron, де кожен рядок визначає розклад за допомогою п'ятипольного часового виразу.
Синтаксис виразів Cron
Вираз cron складається з п'яти полів, розділених пробілами:
- Хвилина (0-59) — вказує, на якій хвилині повинно запуститися завдання
- Година (0-23) — вказує годину в 24-годинному форматі
- День місяця (1-31) — вказує день місяця
- Місяць (1-12) — вказує місяць року
- День тижня (0-7, де 0 і 7 — неділя) — вказує день тижня
Спеціальні символи: * (будь-яке значення), / (крокові значення), - (діапазони) та кома (списки).
Поширені шаблони Cron
Найчастіше використовувані вирази cron:
- */5 * * * * — кожні 5 хвилин, зазвичай для перевірок стану
- 0 * * * * — щогодини на 0-й хвилині
- 0 0 * * * — щодня опівночі, стандарт для резервного копіювання
- 0 0 * * 1-5 — кожного робочого дня опівночі
- 0 0 1 * * — першого дня кожного місяця опівночі
- 0 9,17 * * 1-5 — о 9:00 та 17:00 у робочі дні
Спробуйте безкоштовно — реєстрація не потрібна
Створити вираз Cron →Поширені випадки використання
Завдання cron автоматизують практично будь-яке повторюване системне завдання:
- Ротація та очищення логів — автоматичне стиснення або видалення старих файлів логів
- Резервне копіювання бази даних — планування регулярних команд резервного копіювання
- Генерація звітів — складання щоденних, щотижневих або щомісячних звітів
- Очищення кешу — періодичне видалення застарілих записів кешу
- Моніторинг системи — виконання перевірок стану через регулярні інтервали
Поради та підводні камені
Навіть досвідчені розробники стикаються з поширеними проблемами cron:
- Часові пояси — cron використовує системний часовий пояс за замовчуванням. Встановіть TZ або використовуйте UTC
- Перекриття завдань — використовуйте flock для запобігання одночасного запуску кількох екземплярів
- Проблеми з PATH — cron працює з мінімальним оточенням. Завжди використовуйте абсолютні шляхи
- Обробка виводу — cron надсилає stdout і stderr електронною поштою. Перенаправте вивід у файл логу
- Налагодження — перевіряйте /var/log/syslog або /var/log/cron
Часті запитання
Чи може cron планувати завдання з точністю до секунди?
Стандартний cron не підтримує секунди. Використовуйте обхідні шляхи або systemd timers.
Яка різниця між cron і systemd timers?
Cron — традиційний планувальник Unix. Systemd timers пропонують точність менше хвилини та краще логування, але специфічні для Linux.
Як протестувати завдання cron?
Спочатку виконайте команду вручну, потім симулюйте середовище cron за допомогою env -i, і нарешті заплануйте виконання щохвилини для перевірки.