0 9 1-7 * * Buka di Pengurai Ekspresi Cron Menulis 0 9 1-7 * 1 tidak berhasil: jika kedua kolom hari diisi, cron berjalan bila salah satunya cocok, sehingga berjalan pada tanggal 1–7 dan setiap Senin. Quartz dan Spring mendukung MON#1.
Per kolom
| Kolom | Nilai | Cocok dengan |
|---|---|---|
| Menit | 0 | 0 |
| Jam | 9 | 9 |
| Tanggal | 1-7 | 1, 2, 3, 4, 5, 6, 7 |
| Bulan | * | Semua nilai |
| Hari | * | Semua nilai |
Waktu eksekusi berikutnya
Contoh: 6 eksekusi pertama setelah 1 Januari 2026 (UTC).
- Sen, 5 Jan 2026, 09.00
- Sen, 2 Feb 2026, 09.00
- Sen, 2 Mar 2026, 09.00
- Sen, 6 Apr 2026, 09.00
- Sen, 4 Mei 2026, 09.00
- Sen, 1 Jun 2026, 09.00
Versi siap pakai
0 9 1-7 * * [ "$(date +\%u)" = 1 ] && /path/to/command Tambahkan baris ini dengan crontab -e. Baris berjalan di zona waktu server kecuali CRON_TZ atau TZ diatur.
apiVersion: batch/v1
kind: CronJob
metadata:
name: first-monday-of-month
spec:
schedule: "0 9 1-7 * *"
timeZone: "Etc/UTC"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: job
image: busybox:1.36
command: ["/bin/sh", "-c", "date; echo run"] Atur spec.timeZone (Kubernetes 1.27+); tanpanya jadwal mengikuti zona waktu controller manager, biasanya UTC.
on:
schedule:
- cron: '0 9 1-7 * *'
workflow_dispatch: GitHub Actions selalu memakai UTC, hanya menerima interval minimal 5 menit, dan bisa terlambat memulai saat beban tinggi.
0 0 9 ? * MON#1 Quartz menaruh detik di depan dan butuh ? di tanggal atau hari. Hari bernomor 1–7 mulai Minggu, jadi memakai nama lebih aman.
@Scheduled(cron = "0 0 9 * * MON#1") Spring @Scheduled(cron = …) memakai enam kolom: detik, lalu lima kolom biasa.
FAQ
› Mengapa 0 9 1-7 * 1 berjalan terlalu sering?
Cron menggabungkan tanggal dan hari dengan ATAU bila keduanya dibatasi, jadi tugas berjalan pada tanggal 1 sampai 7 dan juga setiap Senin.
› Di zona waktu mana 0 9 1-7 * * berjalan?
Cron memakai zona waktu mesin atau layanan yang menjalankannya. Di Linux itu zona waktu sistem kecuali CRON_TZ atau TZ diatur; CronJob Kubernetes mendukung spec.timeZone; GitHub Actions selalu memakai UTC.
› Bagaimana memeriksa jadwal ini sebelum deploy?
Buka 0 9 1-7 * * di Pengurai Ekspresi Cron di situs ini. Alat itu menjelaskan setiap kolom dan menampilkan eksekusi berikutnya dalam waktu lokal atau UTC, langsung di browser.