Cara menggunakan Generator Cron Expression
- Pilih jadwal umum, atau gunakan Buat jadwal untuk memilih frekuensi, hari dalam minggu, dan waktu, lalu klik Gunakan jadwal ini.
- Atau tempel ekspresi yang sudah ada, misalnya
30 2 * * 1, ke kotak Cron expression — deskripsi dalam bahasa sederhana akan diperbarui saat kamu mengetik. - Sesuaikan bagian tertentu di Ubah field (menit, jam, tanggal, bulan, hari dalam minggu).
- Cek daftar Waktu run berikutnya dalam waktu lokal atau UTC, lalu salin ekspresinya ke crontab, workflow CI, atau scheduler kamu.
Apa itu ekspresi cron?
Ekspresi cron adalah jadwal ringkas yang terdiri dari lima bagian yang dipisahkan spasi. Bagian ini memberi tahu daemon cron Unix, dan alat yang memakai sintaks yang sama seperti GitHub Actions, GitLab CI, Kubernetes CronJobs, Vercel, serta banyak antrean job, kapan sebuah tugas harus dijalankan. Generator ini memungkinkan kamu membuat ekspresi dari dropdown, menjelaskan ekspresi apa pun dalam bahasa sederhana menggunakan pustaka open-source cRonstrue, dan menghitung waktu run berikutnya agar kamu bisa memverifikasi jadwal sebelum dipakai.
Lima bagian
┌──────── minute (0–59)
│ ┌────── hour (0–23)
│ │ ┌──── day of month (1–31)
│ │ │ ┌── month (1–12, JAN–DEC)
│ │ │ │ ┌ day of week (0–6, SUN–SAT)
│ │ │ │ │
* * * * * command
Pada bagian hari dalam minggu, 7 juga berarti Minggu.
Setiap bagian menerima * (setiap nilai), satu angka, rentang 1-5, daftar 1,15,30, langkah */10, atau rentang berlangkah 9-17/2. Beberapa scheduler (Quartz, Spring, AWS EventBridge) menambahkan bagian detik di awal. Centang “Field detik (6 bagian)” untuk bekerja dengan ekspresi 6 bagian.
Contoh
| Ekspresi | Arti |
|---|---|
*/5 * * * * | Setiap 5 menit |
0 * * * * | Di awal setiap jam |
30 2 * * * | Setiap hari pukul 02:30 |
0 9 * * 1-5 | Pukul 09:00 pada hari kerja |
0 0 1 * * | Tengah malam tanggal 1 setiap bulan |
0 0 1 */3 * | Tengah malam pada hari pertama setiap kuartal |
15 14 1 * * | Pukul 14:15 tanggal 1 setiap bulan |
Kesalahan umum
- Tanggal dalam bulan dan hari dalam minggu. Jika kedua bagian dibatasi, cron klasik menjalankan job saat salah satu cocok.
0 0 13 * 5berarti “setiap tanggal 13 dan setiap Jumat”, bukan “Jumat tanggal 13”. Daftar run berikutnya mengikuti aturan ini. - Lupa menit.
* 9 * * *berjalan 60 kali antara pukul 09:00 dan 09:59. Gunakan0 9 * * *untuk berjalan sekali saja. - Zona waktu. Cron memakai zona waktu server, sedangkan GitHub Actions dan sebagian besar scheduler cloud memakai UTC. Ubah daftar run ke UTC untuk membandingkan.
- Langkah yang tidak rata.
*/45di bagian menit berjalan pada :00 dan :45, lalu :00 lagi. Langkah dimulai ulang setiap jam, jadi tidak berlanjut ke jam berikutnya. - Angka hari di Quartz. Quartz menghitung Minggu sebagai 1, sedangkan cron Unix memakai 0 (atau 7). Tool ini memakai penomoran Unix.
Ekstensi non-standar
L di bagian tanggal dalam bulan (hari terakhir bulan), 5L (Jumat terakhir), dan 1#2 (Senin kedua) didukung oleh Quartz dan beberapa implementasi cron, tetapi tidak oleh Vixie cron di Linux. Ekstensi ini dijelaskan dan ditampilkan pratinjaunya di sini, tapi pastikan scheduler kamu menerimanya. Perlu mengubah waktu run menjadi nilai epoch? Coba Unix Timestamp Converter atau Time Zone Converter.
Jadwal cron yang sering dipakai
Ekspresi cron siap pakai untuk jadwal yang paling sering dicari orang:
- Cron Setiap Menit
- Setiap 2 menit
- Setiap 5 menit
- Setiap 10 menit
- Setiap 15 menit
- Setiap 20 menit
- Setiap 30 menit
- Setiap jam
- Setiap 2 jam
- Setiap 3 jam
- Setiap 4 Jam
- Setiap 6 Jam
- Setiap 12 Jam
- Setiap hari tengah malam
- Setiap hari jam 1 pagi
- Setiap hari jam 2 pagi
- Setiap hari jam 6 pagi
- Setiap hari jam 9 pagi
- Setiap hari pukul 12 siang
- Setiap hari pukul 18.00
- Dua kali sehari
- Setiap hari kerja pukul 9 pagi
- Setiap akhir pekan
- Setiap Senin
- Setiap Jumat pukul 17.00
- Setiap Minggu
- Setiap minggu
- Setiap jam saat jam kerja
- Setiap 15 menit pada jam kerja
- Setiap bulan
- Tiap tanggal 15 setiap bulan
- Tanggal 1 dan 15
- Setiap kuartal
- Setiap 6 bulan
- Setiap tahun
- Setiap 30 detik
- Pada hari terakhir setiap bulan
- Setiap Senin pertama dalam bulan
Pertanyaan yang sering diajukan
Apa arti */15 dalam cron?
*/15 di bagian menit berarti setiap menit ke-15 mulai dari 0, yaitu :00, :15, :30, dan :45. 5-50/15 menghasilkan :05, :20, :35, dan :50.Bagaimana cara menjalankan cron job setiap 30 detik?
*/30 * * * * *), atau tambahkan dua baris crontab di mana baris kedua diawali dengan sleep 30;.Apakah waktu cron memakai UTC atau waktu lokal?
CRON_TZ). GitHub Actions, Kubernetes (secara default), dan sebagian besar scheduler cloud mengevaluasi ekspresi dalam UTC. Daftar run di sini bisa menampilkan keduanya.Apa perbedaan @daily dan 0 0 * * *?
@daily (atau @midnight) adalah singkatan dari 0 0 * * *. Begitu juga @hourly = 0 * * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, dan @yearly = 0 0 1 1 *.Bagaimana cara menjadwalkan job pada hari terakhir bulan?
L jika scheduler mendukungnya (0 0 L * *), atau jalankan setiap hari pada tanggal 28–31 lalu uji tanggalnya di dalam perintah: 0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && ./job.sh.Kenapa ekspresi saya tidak pernah berjalan?
0 0 31 2 * (31 Februari) atau 0 0 31 4 * (31 April), tidak pernah cocok. Daftar run berikutnya akan menampilkan peringatan jika tidak ada run yang ditemukan dalam sepuluh tahun ke depan.