ИНСТР-CRON-MONTHLY0 0 1 * *@monthly · 12 раз/годревизия 2026-05-07

Cron 1-го числа

0 0 1 * * — запуск 1-го числа каждого месяца в полночь. Биллинг, отчёты, ротация логов, начисление зарплат.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-CRON-MONTHLY|real-time
calcal.ru / cron-pervoe-chislo-mesyatsa
Загрузка инструмента…
1
Числа месяца
00:00
Время
12
Раз в год
0
Запросов к серверу

Выражение 0 0 1 * *

00 1 * * — стандартное cron-выражение для запуска 1-го числа каждого месяца в полночь. Используется массово в финансовых, биллинговых, отчётных системах. Эквивалент алиаса @monthly.

Разбор по полям:

  • 0 — минута: 0 (ровно полночь, не 0:01).
  • 0 — час: 0 (полночь).
  • 1 — день месяца: 1-е число.
  • * — месяц: любой (все 12).
  • * — день недели: любой.

Запускается 12 раз в год: 1 января, 1 февраля, 1 марта... 1 декабря — независимо от того, выпадает ли это на выходной.

Бизнес-сценарии

  • Биллинг (выставление счетов). Главное применение в SaaS. 1-го числа генерируются счета клиентам за прошлый месяц. Стрипом списываются платежи с подписок.
  • Финансовые отчёты. P&L (отчёт о прибылях и убытках) за прошлый месяц. Cash flow. KPI команды.
  • Зарплата. 1-го числа за прошлый месяц (или 25-го + 10-го для аванса+основной). У бухгалтерии есть несколько дней на проверку до отправки.
  • Аналитика SaaS. MRR/ARR (Monthly/Annual Recurring Revenue), Churn rate, NPS опросы за месяц.
  • Ротация логов. Архивирование логов за прошлый месяц в холодное хранилище (S3 Glacier, Yandex Object Storage Cold). Удаление старых.
  • Очистка БД. Удаление soft-deleted записей старше 30 дней. Архивирование закрытых тикетов.
  • SLA-отчёты. Расчёт uptime / availability за прошлый месяц. Если ниже SLA — расчёт компенсации клиентам.
  • Email-дайджест. Newsletter «итоги месяца» для подписчиков. Отчёт о пользовании сервисом.
  • Сертификаты SSL. Проверка истекающих сертификатов, автообновление через Let's Encrypt.
Месячные cron-задачи — самые опасные. Если что-то ломается, узнаёте об этом через 30 дней, когда не запустилось снова. Делайте логирование, алерты, и ОБЯЗАТЕЛЬНО — тестовый запуск в staging перед production.Stripe Engineering Blog, 2018

Связанные паттерны

ВыражениеКогдаПрименение
0 0 1 * *1-е число 00:00Биллинг, отчёты, ротация
0 6 1 * *1-е число 06:00Биллинг с возможностью fix
0 9 1 * *1-е число 09:00Email клиентам в раб время
0 0 15 * *15-го числаАванс зарплаты, mid-month report
0 0 1,15 * *1 и 15 числаДвойная зарплата (аванс+основная)
0 0 1 */3 *1-го числа кв-лаКвартальный отчёт
0 0 1 1 *1 январяГодовой архив, обнуление счётчиков
0 0 28-31 * *28-31 числаКонец месяца (последние 4 дня)

Подводные камни

  • 30-дневная проверка. Если cron сломался, заметите только через месяц. Логируйте каждый запуск, отправляйте алерт в Slack/Telegram при failure.
  • Тяжёлая нагрузка. 1-го числа в 0:00 — традиционное время для всех месячных задач. Многие сервера испытывают пик. Распределите: одни на 0:00, другие на 0:30, 1:00, 2:00...
  • Часовые пояса. Для глобального бизнеса учитывайте: 1 января UTC = 31 декабря на западе (Лос-Анджелес), 2 января на востоке (Австралия). Аккуратно с финансовыми периодами.
  • Тестирование. Тяжело тестировать «1-го числа». Подменяйте дату в тесте, или запускайте «через минуту» в staging для отладки.
  • Idempotency. Если cron упал на полпути и перезапустился — не должен дублировать счета или начислять зарплату дважды. Используйте transaction + UPSERT + maker-checker pattern.
ИСТОЧНИКИ
  1. POSIX crontab specification. IEEE / Open Group. pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html. 2018.
  2. Stripe Engineering — Designing robust scheduled jobs. Stripe. stripe.com/blog/idempotency. 2017.
  3. man crontab 5 — Linux. Linux Documentation Project. man7.org/linux/man-pages/man5/crontab.5.html. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

0 0 1 * * — запуск ровно в полночь 1-го числа каждого месяца. Расшифровка: 0 — минута 0, 0 — час 0 (полночь), 1 — день месяца 1, два * — любой месяц и любой день недели. Эквивалент @monthly алиаса. Запускается 12 раз в год: 1 января, 1 февраля и так далее.
@monthly = 0 0 1 * * — поддерживается Vixie cron (стандарт Linux), а также cronie, GNU mcron, dcron. НЕ поддерживается: Quartz (Java), некоторые managed services (старые версии AWS Lambda EventBridge). Если сомневаетесь — используйте явное 0 0 1 * *. Работает везде, читается одинаково, никаких неожиданностей.
Полночь (00:00) — традиционно «нерабочее время», минимум нагрузки на серверы. Если задача тяжёлая (генерация отчётов за месяц, агрегация миллионов записей), лучше запустить ночью. Утром получите готовые результаты. Минус — если задача упала, никто не заметит до утра. Решение: алерт на email при failure, или сдвинуть на 6 утра когда админы просыпаются.
0 0 1 * * запускается ровно 1-го числа — это всегда есть. В феврале 1-е число существует независимо от длины месяца (28 или 29). Проблема возникает с 31-м числом: 0 0 31 * * запустится только в январе, марте, мае, июле, августе, октябре, декабре. Не в феврале, апреле, июне, сентябре, ноябре. Для «последний день месяца» — нужен Quartz (L символ) или скрипт.
Биллинг — генерация счетов клиентам за прошлый месяц. Зарплата — начисление за прошлый месяц (или 25-го число для аванса). Ротация логов — архивирование за прошлый месяц, очистка старых. Отчёты — финансовый, маркетинговый, продаж за прошлый месяц. Подсчёт MRR/ARR (Monthly/Annual Recurring Revenue) для SaaS. Ежемесячная подписка — снимаем платежи у пользователей.
Зависит от ситуации. Полночь (0 0 1 * *) — традиционно для расчётов, мало нагрузки. Минус: если что-то пошло не так, об этом узнают только утром. Раннее утро (0 6 1 * *) — успевают исправить ошибки до того, как клиенты начали работать. 1 числа в 9:00 (0 9 1 * *) — клиенты получат биллинг в рабочее время, могут сразу обратиться в поддержку. Для B2B SaaS обычно 6-8 утра.
Cron запустит 0 0 1 * * независимо. Если задача требует «1-го числа, но если выходной — то ближайший рабочий день» — стандартный cron не справится. Решения: (1) Запускать каждый день, в скрипте проверять «1-е число + сегодня будний день, ИЛИ выходной + первый раз в этом месяце». (2) Использовать CronJobBean в Spring или Quartz с custom calendar. (3) AWS EventBridge не поддерживает business calendar — придётся писать логику в Lambda.
0 0 1 * * — 1-го числа. 0 0 15 * * — 15-го (середина месяца, удобно для зарплат). 0 0 25 * * — 25-го (аванс зарплаты). 0 0 1,15 * * — 1-го и 15-го (зарплата два раза). 0 0 1 1 * — 1 января (годовая задача). 0 0 1 */3 * — 1-го числа каждого 3-го месяца (квартальный отчёт: январь, апрель, июль, октябрь). 0 0 L * * — последний день месяца (только Quartz).
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.