Cara Membaca dan Memahami Ekspresi Cron

17 Jun 2026 1,421 words

Cara Membaca dan Memahami Ekspresi Cron

Ekspresi cron adalah string dari lima atau enam bidang yang menggambarkan jadwal berulang. Setelah Anda mempelajari polanya, Anda dapat membaca ekspresi cron seperti bahasa Inggris biasa. Panduan ini mengajarkan Anda untuk mendekode setiap elemen sintaks cron, dari * * * * * sederhana hingga ekspresi kompleks dengan rentang, langkah, dan karakter khusus.

Lima Bidang Cron

Setiap ekspresi cron memiliki lima bidang waktu diikuti oleh perintah:

┌───────── Menit (0-59)
│ ┌──────── Jam (0-23)
│ │ ┌─────── Hari dalam Bulan (1-31)
│ │ │ ┌────── Bulan (1-12)
│ │ │ │ ┌───── Hari dalam Minggu (0-7, 0 dan 7 = Minggu)
│ │ │ │ │
* * * * * <perintah>

Membaca dari kiri ke kanan: "Pada menit berapa, pada jam berapa, pada hari apa dalam bulan, pada bulan apa, dan pada hari apa dalam minggu?"

Membaca Ekspresi Langkah demi Langkah

Contoh Sederhana

0 9 * * *

Dibaca sebagai: "Pada menit 0, pada jam 9, setiap hari dalam bulan, setiap bulan, setiap hari dalam minggu." → Berjalan setiap hari jam 9:00 pagi.

*/15 * * * *

Dibaca sebagai: "Setiap 15 menit dari setiap jam, setiap hari." → Berjalan setiap 15 menit.

30 8 * * 1-5

Dibaca sebagai: "Pada menit 30, pada jam 8, setiap hari dalam bulan, setiap bulan, Senin sampai Jumat." → Berjalan hari kerja jam 8:30 pagi.

0 0 1 * *

Dibaca sebagai: "Pada tengah malam pada hari pertama setiap bulan." → Berjalan bulanan.

Contoh Kompleks

0 9-17/2 * * 1-5

Memecahnya:

  • 0 — pada menit 0
  • 9-17/2 — setiap 2 jam dari jam 9 hingga 17 (yaitu, 9, 11, 13, 15, 17)
  • * — setiap hari dalam bulan
  • * — setiap bulan
  • 1-5 — Senin sampai Jumat

→ Berjalan pada jam 9:00, 11:00, 13:00, 15:00, dan 17:00 pada hari kerja.

30 6 1,15 * 0

Memecahnya:

  • 30 — pada menit 30
  • 6 — pada jam 6
  • 1,15 — pada hari 1 dan hari 15 dalam bulan
  • * — setiap bulan
  • 0 — hanya pada hari Minggu

→ Berjalan jam 6:30 pagi pada tanggal 1 dan 15 setiap bulan, hanya jika hari-hari tersebut juga hari Minggu.

Referensi Karakter Khusus

* — Setiap / Semua

Mencocokkan nilai apa pun untuk bidang itu.

0 * * * *     → "Setiap jam"
* * * * *     → "Setiap menit"

, — Daftar / Atau

Memisahkan beberapa nilai.

0 9,12,15 * * *     → "Pada jam 9 pagi, 12 siang, dan 3 sore"

- — Rentang

Mendefinisikan rentang nilai inklusif.

0 9-17 * * *        → "Setiap jam dari jam 9 pagi hingga 5 sore"
30 8 * * 1-5        → "Hari kerja jam 8:30 pagi"

/ — Langkah

Membagi bidang menjadi kelipatan.

*/15 * * * *        → "Setiap 15 menit"
0 */2 * * *         → "Setiap 2 jam"
0 0 */3 * *        → "Setiap 3 hari"

Langkah dapat digabungkan dengan rentang:

0 9-17/2 * * *     → "Setiap 2 jam dari jam 9 pagi hingga 5 sore"
30 */4 * * 1-5     → "Setiap 4 jam pada hari kerja, pada menit 30"

L — Terakhir (beberapa sistem)

Dalam beberapa implementasi cron (seperti Quartz), L berarti "terakhir."

0 0 L * *          → "Hari terakhir setiap bulan"

# — Kemunculan ke-N (beberapa sistem)

0 9 * * 1#1        → "Senin pertama setiap bulan jam 9 pagi"

Ekspresi Umum yang Didekode

Ekspresi Dapat Dibaca Manusia Deskripsi
* * * * * Setiap menit
*/5 * * * * Setiap 5 menit
0 * * * * Pada menit 0 setiap jam Setiap jam
0 */2 * * * Setiap 2 jam
0 9 * * * Setiap hari jam 9 pagi Harian
0 9,17 * * * Setiap hari jam 9 pagi dan 5 sore
0 9 * * 1-5 Hari kerja jam 9 pagi
30 8 * * 1 Senin jam 8:30 pagi
0 0 1 * * Tanggal 1 setiap bulan Bulanan
0 0 1 1 * 1 Januari tengah malam Tahunan
*/15 9-17 * * 1-5 Setiap 15 menit selama jam kerja pada hari kerja
0 0 * * 0 Setiap Minggu tengah malam Mingguan
0 0 */2 * * Setiap dua hari tengah malam
0 22 * * 5 Setiap Jumat jam 10 malam

Cron Enam Bidang (Dengan Detik)

Beberapa implementasi cron (seperti Quartz Scheduler) menggunakan enam bidang, menambahkan detik di awal:

┌───────── Detik (0-59)
│ ┌──────── Menit (0-59)
│ │ ┌─────── Jam (0-23)
│ │ │ ┌────── Hari dalam Bulan (1-31)
│ │ │ │ ┌───── Bulan (1-12)
│ │ │ │ │ ┌──── Hari dalam Minggu (0-7)
│ │ │ │ │ │
* * * * * * <perintah>
0 */5 * * * *     → "Setiap 5 menit, pada detik 0"
0 0 9 * * *       → "Setiap hari jam 9:00:00 pagi"

Singkatan Non-Standar

Banyak implementasi cron mendukung alias ini:

@yearly   → 0 0 1 1 *     → "Setahun sekali"
@monthly  → 0 0 1 * *     → "Sebulan sekali"
@weekly   → 0 0 * * 0     → "Seminggu sekali"
@daily    → 0 0 * * *     → "Sehari sekali"
@hourly   → 0 * * * *     → "Satu jam sekali"
@reboot   → (bukan waktu)  → "Berjalan saat startup"

Menerjemahkan Cron ke Bahasa Manusia

Ketika Anda melihat ekspresi cron yang tidak dikenal, dekode bidang demi bidang:

Ekspresi: 45 17 1,15 * 1-5
Bidang Nilai Arti
Menit 45 Pada menit 45
Jam 17 Pada jam 5 sore
Hari dalam Bulan 1,15 Pada tanggal 1 dan 15
Bulan * Setiap bulan
Hari dalam Minggu 1-5 Senin sampai Jumat

Hasil: "Pada jam 5:45 sore tanggal 1 dan 15 setiap bulan, hanya jika hari-hari tersebut adalah hari kerja."

Ekspresi: 0 0 * * 0
Bidang Nilai Arti
Menit 0 Pada tengah malam
Jam 0 Pada jam 0 (tengah malam)
Hari dalam Bulan * Setiap hari
Bulan * Setiap bulan
Hari dalam Minggu 0 Minggu

Hasil: "Setiap Minggu tengah malam."

Kesalahan Umum Saat Membaca Cron

Kesalahan 1: * di hari-dalam-minggu DAN hari-dalam-bulan berarti keduanya cocok

Ketika kedua hari-dalam-bulan dan hari-dalam-minggu adalah *, ekspresi berjalan pada hari apa pun. Tetapi ketika keduanya memiliki nilai spesifik, pekerjaan berjalan jika SALAH SATU cocok — ini adalah kondisi OR.

0 9 15 * 1

Ini berjalan jam 9 pagi pada tanggal 15 setiap bulan DAN pada setiap hari Senin (bukan "tanggal 15 DAN Senin"). Untuk berjalan hanya ketika keduanya cocok, Anda memerlukan dua entri crontab terpisah atau logika tingkat skrip.

Kesalahan 2: Cron menggunakan waktu lokal, bukan UTC

Cron menggunakan waktu lokal sistem. Pada server yang dikonfigurasi ke UTC, 0 9 * * * berjalan jam 9 pagi UTC. Selalu verifikasi zona waktu server sebelum mengatur jadwal.

Kesalahan 3: 0 dan 7 keduanya adalah hari Minggu

Dalam bidang hari-dalam-minggu, baik 0 maupun 7 mewakili hari Minggu. Ini adalah warisan dari implementasi Unix awal.

Alat Online

Alat Cron Expression Parser di Help2Code mendekode ekspresi cron apa pun menjadi deskripsi yang dapat dibaca manusia. Tempelkan ekspresi seperti */15 9-17 * * 1-5 dan lihat rincian bidang demi bidang, waktu eksekusi berikutnya, dan penjelasan bahasa Inggris. Buat ekspresi baru dengan alat Cron Job Command Generator.

Kesimpulan

Membaca ekspresi cron adalah keterampilan yang menjadi kebiasaan dengan latihan. Ingat lima bidang: menit, jam, hari-dalam-bulan, bulan, hari-dalam-minggu. Gunakan wildcard * untuk "setiap," rentang dengan - untuk rentang, langkah dengan / untuk interval, dan daftar dengan , untuk nilai spesifik. Dekode ekspresi yang tidak dikenal bidang demi bidang, dan gunakan alat Cron Expression Parser untuk memverifikasi pemahaman Anda.


About this article

Pelajari cara membaca dan memahami ekspresi cron. Dekode jadwal crontab apa pun dengan parser ekspresi kami dan kuasai karakter khusus, rentang, dan langkah.


Related Articles


Related Tools

Help2Code Logo
Menu