Открыть в генераторе Cron-выражений →
Что означает 0 9 1-7 * *
Cron читает пять полей слева направо: минута, час, день месяца, месяц и день недели. Для первого понедельника месяца они такие:
| Поле | Значение | Смысл | Допустимо |
|---|---|---|---|
| Минута | 0 | 0 | 0–59 |
| Час | 9 | 09:00 | 0–23 |
| День месяца | 1-7 | с 1 по 7 | 1–31 |
| Месяц | * | каждый месяц | 1–12 |
| День недели | * | каждый день недели | 0–6 (Вс–Сб) |
Следующие запуски
Вычисляется в вашем браузере для вашего часового пояса. На сервере cron использует часовой пояс сервера (часто UTC).
- Включите JavaScript, чтобы увидеть время следующих запусков.
Типичные сценарии
- Ежемесячные встречи команды
- Ежемесячные отчёты в рабочий день
Важно знать
Стандартный cron не умеет задавать «первый понедельник» напрямую. Запускайте в 9:00 в дни с 1 по 7 и пусть команда выполняется только в понедельник: 0 9 1-7 * * [ "$(date +\%u)" = 1 ] && /job.sh. Не пишите 0 9 1-7 * 1: когда заданы оба поля дня, классический cron запускается, если совпадает любое из них, и тогда задача будет выполняться каждый понедельник.
Использование в crontab, GitHub Actions, Kubernetes и Node.js
crontab (crontab -e):
0 9 1-7 * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
GitHub Actions (время в UTC):
on:
schedule:
- cron: '0 9 1-7 * *'
Kubernetes CronJob:
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "0 9 1-7 * *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: my-job
image: alpine:3
command: ["sh", "-c", "echo running"]
Node.js (node-cron):
import cron from 'node-cron';
cron.schedule('0 9 1-7 * *', () => {
// your job
});
Похожие расписания
- Каждый месяц —
0 0 1 * * - 15-го числа каждого месяца —
0 0 15 * * - 1-го и 15-го числа —
0 0 1,15 * * - Каждый квартал —
0 0 1 1,4,7,10 * - Каждые 6 месяцев —
0 0 1 1,7 * - Каждый год —
0 0 1 1 * - Последний день месяца —
0 0 28-31 * *
Создайте своё расписание
Превратите любое расписание в cron-выражение или любое выражение в понятное описание — с временем следующих запусков.
Часто задаваемые вопросы
Какое cron-выражение для первого понедельника месяца?
0 9 1-7 * *. Запуск в 0 минут; 09:00; с 1 по 7 число.Какой часовой пояс использует cron?
spec.timeZone (например, Europe/Berlin).