Калькулятор cron
|
|
каждую минуту (максимальная частота)
ежедневно в 3:00 (рекомендуется для ежедневных бэкапов)
ежедневно в 12:00
каждые 30 минут
каждый час
каждые 3 часа
каждые 12 часов
ежедневно в 00:00
каждую неделю по понедельникам
каждую неделю по вторникам
каждую неделю по средам
каждую неделю по четвергам
каждую неделю по пятницам
каждую неделю по субботам
каждую неделю по воскресеньям
раз в месяц 1 числа в 00:00
раз в полгода 1 числа в 00:00
раз в год 1 января в 00:00
|
- Что такое Cron и зачем он нужен
- Cron калькулятор онлайн — зачем он нужен
- Синтаксис cron (подробно о каждом поле)
- Специальные символы в cron
- Типичные ошибки при настройке cron
- Использование утилиты crontab
- Редактирование пользовательских cron job
- Редактирование системного crontab
- Примеры cron job
- 1. Ежедневное резервное копирование VPS ночью (3:00)
- 2. Автоматическое обновление SSL сертификатов каждые 2 часа
- 3. Перезапуск приложения каждые 2 дня в 10:00 с уведомлением на email
- 4. Запуск задачи по будним дням в 8:00 утра
- 5. Комплексный бэкап: еженедельно и ежемесячно
- Как использовать cron калькулятор онлайн
- ЧАВО (FAQ) по кронам
Что такое Cron и зачем он нужен
Cron — это системный планировщик задач в Linux и Unix-подобных системах, который позволяет автоматически выполнять скрипты и команды по расписанию. Cron широко используется для:
- Резервного копирования;
- Отправки отчетов по email;
- Очистки временных файлов;
- Регулярного обновления данных;
- Запуска любых скриптов в заданное время.
Каждое задание cron задается строкой, которая указывает, когда и как часто оно должно выполняться. Ошибки в cron выражении могут привести к тому, что задача не запустится или запустится в неправильное время.
Cron калькулятор онлайн — зачем он нужен
Создание cron job вручную может быть сложным, особенно для новичков. Наш cron калькулятор онлайн помогает:
- Создавать корректные cron job без ошибок;
- Проверять расписание и визуализировать выполнение задач;
- Экономить время при настройке cron в Linux;
- Использовать готовые шаблоны или вводить собственные значения вручную;
- Избегать типичных ошибок при настройке cron.
Синтаксис cron (подробно о каждом поле)
Строка cron состоит из шести или семи полей, в зависимости от того, редактируется ли системный или пользовательский crontab:
# Для пользовательского crontab (через crontab -e):
* * * * * <команда>
# Для системного crontab (/etc/crontab или /etc/cron.d/):
* * * * * <user> <команда>
* * * * * <команда>
# | | | | |
# | | | | день недели (0–7, 0 и 7 — воскресенье)
# | | | месяц (1–12)
# | | день месяца (1–31)
# | час (0–23)
# минута (0–59)
Подробно о каждом поле:
- Минута (0–59) — указывает минуту запуска задачи.
*— каждую минуту*/5— каждые 5 минут0,30— 0 и 30 минут
- Час (0–23) — указывает час запуска задачи.
*— каждый час*/3— каждые 3 часа9,18— 9:00 и 18:00
- День месяца (1–31) — день месяца для выполнения задачи.
*— каждый день1,15— 1-го и 15-го числа месяца*/2— через день
- Месяц (1–12) — месяц запуска cron job.
*— каждый месяц1,7— январь и июль*/6— каждые 6 месяцев
- День недели (0–7) — день недели (0 и 7 — воскресенье).
*— каждый день недели1,3,5— понедельник, среда, пятница*/2— через день (в контексте недели)
Важно: если указаны и день месяца, и день недели, cron использует логическое ИЛИ. Задача выполнится либо по дню месяца, либо по дню недели.
Специальные символы в cron
*— любое значение,— перечисление значений (1,2,5)-— диапазон (1-5)/— шаг (*/10— каждые 10 единиц)
Типичные ошибки при настройке cron
- Неправильное использование
/(например,*/31в минутах не даст каждые 31 минуту, а только раз в час на 31-й минуте). - Совмещение дня месяца и дня недели без понимания логики ИЛИ.
- Пропуск поля команды — задача не будет выполняться.
- Ошибка в формате чисел (например, месяц 0 или день 32).
Использование утилиты crontab
Редактирование пользовательских cron job
crontab -e— открыть редактор для редактирования текущего пользователя.crontab -l— вывести список cron job пользователя.crontab -r— удалить все cron job пользователя.
В пользовательском crontab нет поля пользователя — все задачи выполняются от текущего пользователя.
Редактирование системного crontab
- Файл
/etc/crontabили файлы в/etc/cron.d/содержат дополнительное поле пользователя. - Важно правильно указать имя пользователя, иначе задача не запустится.
Примеры cron job
1. Ежедневное резервное копирование VPS ночью (3:00)
0 3 * * * /bin/bash /root/backup_script_vps.sh >> /var/log/backup.log 2>&1
Таймлайн часов (0–23):
00 01 02 ⏰ 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Описание:
Запускается каждый день в 3:00 утра. Все действия логируются в /var/log/backup.log. Идеально для регулярного резервного копирования VPS без участия администратора.
2. Автоматическое обновление SSL сертификатов каждые 2 часа
0 */2 * * * root /usr/bin/letsencrypt renew
Таймлайн часов (0–23):
00 ⏰ 01 02 ⏰ 03 04 ⏰ 05 06 ⏰ 07 08 ⏰ 09 10 ⏰ 11 12 ⏰ 13 14 ⏰ 15 16 ⏰ 17 18 ⏰ 19 20 ⏰ 21 22 ⏰ 23
Описание:
Запуск каждые 2 часа для автоматического обновления SSL сертификатов. Полезно для серверов с часто истекающими сертификатами.
3. Перезапуск приложения каждые 2 дня в 10:00 с уведомлением на email
MAILTO=noc@example.net
0 10 */2 * * root /usr/local/repl/restart_repl.sh
Таймлайн дней месяца (1–14):
01 — 02 ⏰ 03 — 04 ⏰ 05 — 06 ⏰ 07 — 08 ⏰ 09 — 10 ⏰ 11 — 12 ⏰ 13 — 14 ⏰
Описание:
Перезапуск критичного приложения каждые два дня в 10:00. Отчет автоматически отправляется на указанный email, что позволяет контролировать стабильность работы сервиса.
4. Запуск задачи по будним дням в 8:00 утра
0 8 * * 1-5 /root/scripts/example.sh
Таймлайн дней недели (Пн–Вс):
Пн ⏰ Вт ⏰ Ср ⏰ Чт ⏰ Пт ⏰ Сб — Вс —
Описание:
Выполнение скрипта по будним дням в 8:00 утра. Отлично подходит для мониторинга, отчетности или регулярного обновления данных для сотрудников.
5. Комплексный бэкап: еженедельно и ежемесячно
# Раз в неделю по воскресеньям
0 4 * * 7 /bin/bash /root/backup_script_vps.sh >> /var/log/backup.log 2>&1
# 1-го числа каждого месяца
0 5 1 * * /bin/bash /root/backup_script_vps.sh >> /var/log/backup.log 2>&1
Таймлайн дней недели (еженедельно):
Пн — Вт — Ср — Чт — Пт — Сб — Вс ⏰
Таймлайн дней месяца (ежемесячно, числа 1–5):
01 ⏰ 02 — 03 — 04 — 05 —
Описание:
Обеспечивает надежную стратегию резервного копирования: еженедельно и ежемесячно. Подходит для серверов с критичными данными, где важна регулярность бэкапов.
Все эти выражения можно создать в нашем cron калькуляторе онлайн, проверить корректность и сразу использовать на сервере.
Как использовать cron калькулятор онлайн
Наш калькулятор позволяет:
- выбрать готовый шаблон из множества вариантов;
- задать собственные значения вручную;
- проверить cron job перед запуском;
- получить строку cron, готовую для использования в Linux.
Это экономит время и минимизирует риск ошибок, особенно если вы создаёте сложные cron job с множественными условиями.
ЧАВО (FAQ) по кронам
Иногда не знаешь, от какого пользователя работают cron-задания. Команда ниже перебирает всех пользователей и показывает их crontab:cat /etc/passwd | cut -d : -f1 | xargs -I % crontab -l -u %
Полезно для аудита и поиска неожиданных заданий.
Демон cron — это системная служба, которая работает в фоне и отвечает за выполнение заданий по расписанию. Он регулярно проверяет файлы crontab и системный файл /etc/crontab, а затем запускает команды в указанное время без вмешательства пользователя.
Демон cron при каждой активации проверяет дату изменения файла /etc/crontab и директории /var/spool/cron/. Если они изменились, cron перечитывает все изменения и учитывает их при последующих вызовах.
Нет, перезапуск не нужен. После изменения пользовательского файла через crontab -e демон cron автоматически учтёт изменения при следующей активации.
При использовании crontab -e утилита корректно обновляет файлы в /var/spool/cron/ и уведомляет демон cron об изменениях. Ручное редактирование файлов в этой директории может привести к тому, что изменения не будут учтены.
/etc/crontab напрямую? Да, для файла /etc/crontab можно использовать обычный текстовый редактор, но нужны права root. Демон cron проверяет дату изменения этого файла отдельно, поэтому изменения будут учтены без перезапуска.
Да, помимо классического cron существуют более современные планировщики задач:
systemd timers — встроенные в systemd, позволяют запускать задачи с более гибкими триггерами и зависимостями.
Anacron — для выполнения задач, которые пропустились, например, если компьютер был выключен.
Kubernetes CronJobs — для контейнеризованных приложений в кластере Kubernetes.
Task Spoolers или сторонние планировщики (например, Jenkins, Airflow) — для сложных автоматизаций и пайплайнов.
Эти альтернативы часто используют в современных DevOps-средах, когда нужно больше контроля или интеграция с другими сервисами.
