⏱️
← Kembali ke Panduan

Sintaks Ekspresi Cron: Panduan Lengkap dengan Contoh

· Tag: cron-syntax, crontab-format, cron-fields, cron-expression-guide, linux-automation

Sintaks Ekspresi Cron

Cron adalah penjadwal tugas standar pada sistem mirip Unix. Setiap ekspresi cron mendefinisikan jadwal dalam string ringkas yang menentukan kapan suatu perintah harus berjalan. Memahami sintaksnya sangat penting untuk mengotomatiskan backup, rotasi log, dan tugas pemeliharaan.

Format 5 Field

Ekspresi cron standar memiliki lima field yang dipisahkan oleh spasi:

* * * * *
| | | | |
| | | | +----- Day of the Week (0-7, 0 and 7 = Sunday)
| | | +------- Month (1-12)
| | +--------- Day of the Month (1-31)
| +----------- Hour (0-23)
+------------- Minute (0-59)

Detail Field

| Field | Rentang | Karakter Khusus | Contoh | |-------|---------|-----------------|--------| | Menit | 0-59 | , - * / | 30 = pada menit 30 | | Jam | 0-23 | , - * / | 6 = pada 6 pagi | | Hari dalam Bulan | 1-31 | , - * / | 15 = pada tanggal 15 | | Bulan | 1-12 | , - * / | 6 = pada bulan Juni | | Hari dalam Minggu | 0-7 | , - * / | 0 = pada hari Minggu |

Menit mengontrol menit eksekusi yang tepat: 30 * * * * berjalan pada menit 30 setiap jam. Jam mendefinisikan waktu dalam sehari: 0 6 * * * berjalan pada pukul 6:00 pagi setiap hari. Hari dalam bulan membatasi ke tanggal kalender tertentu: 0 0 15 * * berjalan pada tanggal 15 setiap bulan pada tengah malam. Bulan membatasi eksekusi ke bulan tertentu: 0 0 1 6 * berjalan pada tanggal 1 Juni. Hari dalam minggu mengontrol hari kerja mana: 0 8 * * 1-5 berjalan pada pukul 8 pagi Senin hingga Jumat.

Penting: Hari 29-31 hanya dieksekusi di bulan yang memiliki tanggal tersebut. Di bulan yang lebih pendek, nilai-nilai tersebut dilewati secara diam-diam.

Karakter Khusus

| Kar | Nama | Tujuan | Contoh | |------|------|--------|--------| | * | Asterisk | Semua nilai yang mungkin | * di menit = setiap menit | | , | Koma | Daftar nilai | 1,15,30 = menit 1, 15, 30 | | - | Hubung | Rentang | 9-17 = jam 9 hingga 17 | | / | Garis miring | Nilai langkah | */5 = setiap 5 menit |

Nilai Langkah dengan Garis Miring

Garis miring menyatakan "setiap N unit":

# Every 5 minutes
*/5 * * * *

# Every 2 hours
0 */2 * * *

# Every 15 minutes during business hours
*/15 9-17 * * *

Pola Jadwal Cron Umum

| Jadwal | Ekspresi | Deskripsi | |--------|----------|-----------| | Setiap menit | * * * * * | Berjalan 1.440 kali per hari | | Setiap 5 menit | */5 * * * * | Health check, pemantauan | | Setiap jam | 0 * * * * | Awal setiap jam | | Dua kali sehari | 0 6,18 * * * | 6 pagi dan 6 sore | | Harian tengah malam | 0 0 * * * | Pemeliharaan klasik | | Mingguan Minggu | 0 0 * * 0 | Pemeliharaan mingguan | | Tanggal 1 setiap bulan | 0 0 1 * * | Laporan bulanan | | Hari kerja 9 pagi | 0 9 * * 1-5 | Mulai jam kerja |

Pintasan Non-Standar

Beberapa implementasi cron mendukung pintasan bernama: @yearly (1 Jan), @monthly (tanggal 1), @weekly (Minggu), @daily (tengah malam), @hourly, dan @reboot (berjalan sekali saat sistem mulai). Didukung oleh Vixie cron, cronie, dan timer systemd.

Kesalahan Umum

  • Menetapkan hari-dalam-bulan dan hari-dalam-minggu sekaligus menciptakan kondisi OR — tugas berjalan ketika salah satu cocok, yang jarang sesuai dengan maksud.
  • Cron menggunakan zona waktu sistem. Tugas di dekat transisi daylight saving dapat berjalan dua kali atau tidak sama sekali.
  • Selalu hitung lima field. Empat field tidak valid; enam field memerlukan sintaks cron yang diperluas.

Uji Ekspresi Cron Anda

Gunakan validator ekspresi cron untuk memeriksa sintaks, melihat pratinjau waktu eksekusi mendatang, dan menangkap kesalahan sebelum memengaruhi produksi. Pemeriksaan validasi tiga puluh detik mencegah kegagalan penjadwalan yang diam-diam.

Sintaks Ekspresi Cron: Panduan Lengkap dengan Contoh - CoolTool