Penghasil Ekspresi Cron

0-59

0-23

1-31

1-12

0-7 (0,7=Minggu)

Berikutnya

Sintaks cron memang ringkas tetapi mudah keliru: 0 */6 * * * berarti setiap enam jam, sedangkan */6 0 * * * dijalankan sepuluh kali, hanya pada jam pertama setelah tengah malam. Generator ini memungkinkan Anda memilih jadwal secara visual (setiap 15 menit, pada hari kerja pukul 09.00, atau tanggal 1 setiap bulan), lalu menghasilkan ekspresi yang tepat beserta deskripsi dalam bahasa sehari-hari tentang artinya.

Cara membuat ekspresi Cron

  1. 1

    Pilih preset atau ketik langsung di kolom

    Setiap menit, setiap jam, setiap hari tengah malam, setiap Minggu, dan tanggal 1 setiap bulan cukup satu klik. Untuk kebutuhan lain, ketik langsung nilai-nilainya di lima kolom.

  2. 2

    Perbaiki jadwal tersebut.

    Mengatur detil seperti menit, jam, hari dalam bulan, bulan, dan hari dalam minggu. Dukungan tersedia untuk rentang (9–17), daftar (1, 15), serta langkah (*/6).

  3. 3

    Baca ekspresinya

    Generator selalu menghasilkan format cron standar 5 kolom, lengkap dengan deskripsi dalam bahasa sederhana tentang jadwalnya.

  4. 4

    Periksa dialeknya

    Dialeknya berbeda-beda (Quartz, AWS EventBridge, Kubernetes). Pastikan ekspresi sesuai dengan yang diharapkan penjadwal Anda.

Lima bidang

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Hari dalam seminggu (0-6, Minggu=0, atau SUN-SAT)
│  │  │  └───── Bulan (1-12, atau JAN-DEC)
│  │  └──────── Tanggal dalam bulan (1-31)
│  └─────────── Jam (0-23)
└────────────── Menit (0-59)

Setiap bidang menerima:

  • Nomor spesifik: 5
  • Daftar: 1,15,30
  • Rentang: 9-17
  • Langkah: */10 (setiap 10) atau 0-30/5 (setiap 5 dari 0 hingga 30)
  • Karakter pengganti: * (setiap nilai)

Ekspresi umum

Jadwal Ekspresi Cron
Setiap menit * * * * *
Setiap 15 menit */15 * * * *
Setiap jam tepat 0 * * * *
Setiap 6 jam 0 */6 * * *
Setiap hari pukul 02.30 pagi 30 2 * * *
Setiap hari kerja pukul 09.00 0 9 * * 1-5
Setiap Senin pukul 08.00 0 8 * * 1
Hari pertama setiap bulan, pukul 03.00 0 3 1 * *
Setiap 15 menit, pukul 9-17 pada hari kerja */15 9-17 * * 1-5
Siang hari pada tanggal 1 dan 15 0 12 1,15 * *
Setiap Minggu pukul tengah malam 0 0 * * 0

Jebakan kombinasi hari dalam bulan dan hari dalam minggu

Dalam cron standar, jika baik tanggal bulan maupun hari dalam minggu ditentukan (bukan *), tugas akan dijalankan ketika salah satu dari keduanya terpenuhi (OR, bukan AND). 0 0 1 * MON dijalankan pada tanggal 1 setiap bulan serta setiap hari Senin, tidak hanya saat tanggal 1 jatuh pada hari Senin.

Vixie Cron dan sebagian besar distribusi Linux mengikuti aturan “OR” ini. Quartz (berbasis Java) serta beberapa sistem lain menggunakan aturan “AND”. Jika ragu, uji ekspresi tersebut dengan dry run atau job uji coba di penjadwal Anda.

Perbedaan dialek

  • Cron standar (Linux): 5 kolom; hari dalam seminggu dari 0 hingga 6 (Minggu = 0 atau 7).
  • Quartz (Spring, aplikasi Java): 6–7 kolom, dengan detik sebagai kolom pertama dan tahun sebagai pilihan; hari dalam minggu dari 1 hingga 7 (Minggu = 1).
  • AWS EventBridge cron: terdiri dari 6 kolom, termasuk tahun; hari dalam minggu dan hari dalam bulan harus saling eksklusif (salah satunya harus bernilai ?).
  • GitHub Actions: formulir standar berisi 5 kolom, interval minimal 5 menit, hanya mendukung waktu UTC.
  • Kubernetes CronJob: format standar berisi 5 kolom, dengan waktu default berbasis UTC.

Selalu pastikan dialek apa yang digunakan oleh penjadwal Anda.

Zona waktu

Proses cron klasik dijalankan dalam zona waktu lokal server, yang dapat menimbulkan masalah serius saat transisi waktu musim panas (DST): tugas yang dijadwalkan pukul 02.30 pagi bisa dijalankan dua kali atau bahkan tidak dijalankan sama sekali pada hari peralihan waktu. Pengatur jadwal modern (seperti systemd timers, Kubernetes, dan EventBridge) memungkinkan Anda menentukan zona waktu secara eksplisit, gunakan UTC kecuali Anda memiliki alasan yang kuat untuk tidak melakukannya.

Pertanyaan yang Sering Diajukan

Setiap 5 unit di bidang tersebut, dimulai dari 0. Di bidang menit, */5 dipicu pada menit ke-0, 5, 10, 15, …, hingga 55. Ini merupakan singkatan dari 0,5,10,15,20,25,30,35,40,45,50,55.

Cron tidak dapat menentukan interval sembarang yang tidak terbagi secara merata menjadi 60 menit atau 24 jam. Untuk periode 90 menit, daftarkan waktu eksekusi secara spesifik: menggunakan kombinasi 0 0,9 * * * dengan baris tambahan, atau beralih ke pengatur jadwal yang mendukung interval sembarang (seperti systemd timers atau anacron).

Tengah malam. Urutan bidang adalah menit-jam; oleh karena itu, 0 0 berarti “menit 0 dari jam 0”. Tengah hari ditulis sebagai 0 12 * * *.

Cron standar melewatkan proses tersebut, jalannya yang terlewat tidak akan diulang. Anacron menangkap tugas harian, mingguan, atau bulanan yang terlewat pada saat sistem dijalankan kembali. CronJob di Kubernetes menggunakan kode startingDeadlineSeconds dan concurrencyPolicy untuk secara eksplisit menangani jendela waktu yang terlewat.

Alat Terkait