⏱️
← Kembali ke Panduan

Cara Memvalidasi Ekspresi Cron: Panduan Langkah demi Langkah

· Tag: cron-validation, cron-debugging, cron-syntax-check, schedule-validation, linux-crontab

Cara Memvalidasi Ekspresi Cron

Ekspresi cron bersifat ringkas namun mudah salah. Garis miring yang salah tempat atau nilai di luar rentang dapat menyebabkan tugas berjalan pada waktu yang salah — atau tidak berjalan sama sekali. Memvalidasi ekspresi sebelum penerapan menghemat waktu berjam-jam debugging ketika tugas penting gagal secara diam-diam.

Kesalahan Sintaks Umum

Nilai di Luar Rentang

Setiap field menerima rentang tertentu. Nilai di luar rentang ini tidak valid.

# Invalid: minute 60 is out of range (0-59)
60 * * * *

# Invalid: hour 24 is out of range (0-23)
0 24 * * *

Field yang Hilang

Ekspresi cron memerlukan tepat lima field. Empat field tidak valid, enam field memerlukan sintaks yang diperluas.

# Invalid: only 4 fields (missing day of week)
0 0 * *

# Invalid: 6-field syntax without proper daemon support
0 0 * * * * /command.sh

Selalu hitung: menit, jam, hari-dalam-bulan, bulan, hari-dalam-minggu.

Nilai Langkah yang Salah

# Invalid: cannot step by 0
*/0 * * * *

# Invalid: step exceeds field maximum
*/61 * * * *

Nilai langkah harus dimulai dari 1 dan tidak melebihi maksimum field.

Cara Memvalidasi Ekspresi Cron

Langkah 1: Parsing ke dalam Field

Pisahkan berdasarkan spasi dan verifikasi tepat lima field:

Expression: 30 6 * * 1-5
Fields:     minute=30, hour=6, day=*, month=*, weekday=1-5

Langkah 2: Validasi Setiap Field

| Field | Rentang yang Diizinkan | Menerima Karakter Khusus | |-------|----------------------|--------------------------| | Menit | 0-59 | * , - / | | Jam | 0-23 | * , - / | | Hari dalam Bulan | 1-31 | * , - / | | Bulan | 1-12 | * , - / | | Hari dalam Minggu | 0-7 | * , - / |

Langkah 3: Periksa Konflik

Beberapa ekspresi valid secara sintaks tetapi mengejutkan secara logika:

# Runs on the 15th OR every Sunday — an OR condition
0 0 15 * 0

Hari-dalam-bulan dan hari-dalam-minggu bersama-sama menciptakan kondisi OR di cron standar. Tugas berjalan ketika salah satu cocok.

Langkah 4: Pratinjau Waktu Mendatang

Hasilkan waktu eksekusi untuk memverifikasi jadwal Anda secara visual:

Expression: 0 2 * * 1
Next 5 executions:
  1. 2026-07-27 02:00:00 (Monday)
  2. 2026-08-03 02:00:00 (Monday)
  3. 2026-08-10 02:00:00 (Monday)

Jika pratinjau tidak sesuai dengan maksud Anda, perbaiki ekspresi sebelum produksi.

Men-debug Tugas yang Tidak Berjalan

Ekspresi yang valid tetapi tidak berjalan biasanya merupakan masalah sistem:

  • Izin — skrip harus memiliki izin eksekusi (chmod +x).
  • Path — cron menggunakan PATH minimal. Selalu gunakan path absolut: /usr/local/bin/mybackup.sh bukan mybackup.sh.
  • Environment — cron tidak memuat profil shell. Ekspor variabel di dalam crontab atau skrip itu sendiri.
  • Logging — arahkan output untuk mengonfirmasi eksekusi:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1

Menggunakan Alat Validator

Validator ekspresi cron menyediakan tiga fungsi:

  1. Validasi sintaks — umpan balik langsung tentang nilai field dan format.
  2. Pratinjau jadwal — lihat waktu eksekusi mendatang dari tanggal saat ini.
  3. Kalender visual — eksekusi terjadwal diplot pada kalender bulanan.

Tidak ada ekspresi cron yang boleh diterapkan tanpa melihat pratinjau beberapa waktu eksekusi berikutnya. Pemeriksaan tiga puluh detik mencegah kegagalan penjadwalan yang diam-diam.

Cara Memvalidasi Ekspresi Cron: Panduan Langkah demi Langkah - CoolTool