Синтаксис crontab
# Формат: MIN HOUR DOM MON DOW COMMAND
# MIN = 0-59
# HOUR = 0-23
# DOM = 1-31 (день месяца)
# MON = 1-12
# DOW = 0-7 (день недели, 0 и 7 = воскресенье)
# Каждые 5 минут
*/5 * * * * /usr/local/bin/check.sh
# Каждый день в 3:30
30 3 * * * /usr/local/bin/backup.sh
# Каждый понедельник в 2:00
0 2 * * 1 /usr/local/bin/weekly-report.sh
# Первое число каждого месяца в полночь
0 0 1 * * /usr/local/bin/monthly-cleanup.sh
Управление crontab
crontab -e # Редактировать (текущий пользователь)
crontab -l # Список заданий
crontab -r # Удалить все задания
crontab -u user # Для другого пользователя
Логирование cron-заданий
# Перенаправление вывода в лог
0 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
# Подавление вывода (без логов)
0 3 * * * /usr/local/bin/backup.sh > /dev/null 2>&1
Специальные значения
| Значение | Эквивалент |
|---|---|
| @reboot | При запуске системы |
| @daily | 0 0 * * * |
| @weekly | 0 0 * * 0 |
| @monthly | 0 0 1 * * |
💡 Для критических задач используйте systemd timers — они имеют встроенный retry механизм и интеграцию с journald для логов.