Cron adalah: Format Cron Job dan Contoh — Terminal

Cron adalah scheduler Unix/Linux untuk menjalankan perintah otomatis pada waktu tertentu. Pelajari format lima kolom cron expression lewat contoh.

Cron adalah layanan di Linux dan macOS yang menjalankan perintah secara otomatis sesuai jadwal. Kamu menulis jadwalnya sekali, lalu cron yang mengeksekusi perintahnya setiap kali waktunya cocok, walaupun kamu lagi tidur atau gak login. Mirip alarm berulang di HP: "Senin sampai Jumat, jam 06:00". Kamu gak menyalakan alarm itu tiap pagi, kamu cukup mengatur polanya. Bedanya, pola cron ditulis sebagai lima kolom.

🧪 Tebakan cepat: jadwal 0 0 13 * 5 jalan kapan: cuma hari Jumat yang jatuh di tanggal 13, atau lebih sering dari itu? Tebak dulu, jawabannya ada di bagian "Tanggal dan hari diisi dua-duanya".

Satu baris crontab: lima kolom waktu, lalu perintah

Jadwal cron disimpan di crontab (cron table), satu daftar untuk tiap user. Tiap baris berisi lima kolom waktu, lalu perintah yang dijalankan:

┌───────── menit    (0-59)
│ ┌─────── jam      (0-23)
│ │ ┌───── tanggal  (1-31)
│ │ │ ┌─── bulan    (1-12)
│ │ │ │ ┌─ hari     (0-7: 0 dan 7 = Minggu, 1 = Senin, 6 = Sabtu)
│ │ │ │ │
0 9 * * 1-5  /home/budi/laporan.sh

Setiap menit, cron mengecek tiap baris: apakah waktu sekarang cocok dengan kelima kolom? Kalau cocok, perintahnya dijalankan. Baris di atas artinya menit 0, jam 9, tanggal berapa pun, bulan apa pun, hari Senin sampai Jumat: tiap hari kerja jam 09:00.

Cron biasa gak punya kolom detik. Paling sering, sebuah baris jalan sekali per menit.

Simbol di tiap kolom

Tulisan Artinya Contoh
* semua nilai di kolom menit: tiap menit
30 satu nilai di kolom menit: menit 30
0,30 daftar nilai di kolom menit: menit 0 dan 30
1-5 rentang, kedua ujungnya ikut di kolom hari: Senin sampai Jumat
*/15 langkah 15, dihitung dari awal rentang di kolom menit: 0, 15, 30, 45
9-17/2 rentang dengan langkah di kolom jam: 9, 11, 13, 15, 17

*/15 artinya "menit yang habis dibagi 15", bukan "15 menit setelah terakhir jalan". Hitungannya mulai lagi tiap jam, jadi */40 jalan di menit 0 dan 40: jaraknya 40 menit, lalu 20 menit.

Membaca jadwal: lima contoh dari Lab

Jam di Lab berhenti di Kamis, 8 Oktober 2026, 14:37. Dari situ, ini tiga jadwal berikutnya untuk tiap expression (deretan lima kolom itu disebut cron expression):

Expression Artinya Tiga jadwal berikutnya
0 9 * * 1-5 Setiap hari kerja jam 09:00 Jum 9 Okt, Sen 12 Okt, Sel 13 Okt, jam 09:00
*/15 * * * * Setiap 15 menit 14:45, 15:00, 15:15
0 0 * * * Setiap hari jam 00:00 Jum 9 Okt, Sab 10 Okt, Min 11 Okt, jam 00:00
0 0 1 * * Setiap awal bulan jam 00:00 1 Nov, 1 Des, 1 Jan 2027, jam 00:00
30 2 * * 3 Setiap Rabu jam 02:30 Rab 14 Okt, Rab 21 Okt, Rab 28 Okt, jam 02:30

Tanggal dan hari diisi dua-duanya

Ada satu aturan yang sering bikin kaget. Kalau kolom tanggal dan kolom hari sama-sama dibatasi (dua-duanya gak diawali *), cron jalan kalau salah satunya cocok.

Jadi 0 0 13 * 5 jalan tiap tanggal 13 dan juga tiap hari Jumat. Dari Kamis 8 Oktober 2026, jadwal berikutnya: Jum 9 Okt, Sel 13 Okt, Jum 16 Okt, Jum 23 Okt. Bukan cuma "Jumat tanggal 13". Itu jawaban tebakannya.

Kalau salah satu kolom diawali *, kolom itu gak ikut menentukan: 0 9 * * 1-5 cuma melihat hari, 0 0 1 * * cuma melihat tanggal.

Mengelola crontab

crontab -e   # buka crontab-mu di editor; simpan untuk memasangnya
crontab -l   # tampilkan isi crontab-mu
crontab -r   # hapus SEMUA jadwalmu, tanpa tanya
$ crontab -l
no crontab for budi
$ crontab -e
crontab: installing new crontab
$ crontab -l
0 9 * * 1-5 /home/budi/laporan.sh >> /home/budi/laporan.log 2>&1

Di latihan: memecah expression dengan JavaScript

Latihannya ditulis dalam JavaScript. Kamu memecah expression jadi lima teks, lalu memberi deskripsinya:

const [minute, hour, day, month, weekday] = "0 9 * * 1-5".split(" ");

console.log(minute);  // 0
console.log(weekday); // 1-5
console.log(String(hour).padStart(2, "0") + ":" + String(minute).padStart(2, "0")); // 09:00

Deskripsi di latihan cuma untuk empat pola di tabel tadi. Expression lain, seperti 30 2 * * 3, dideskripsikan apa adanya: Terjadwal: 30 2 * * 3.

⚠️ Jebakan yang sering ketemu

TL;DR: Cron menjalankan perintah sesuai jadwal di crontab. Tiap baris: lima kolom waktu (menit, jam, tanggal, bulan, hari; 0 dan 7 = Minggu) lalu perintah. * semua nilai, , daftar, - rentang, */15 langkah yang dihitung dari awal rentang. Kalau tanggal dan hari dua-duanya diisi, cron jalan saat salah satunya cocok. crontab -e untuk menambah jadwal, -l untuk melihat, -r menghapus semuanya. Pakai path lengkap, simpan output ke log dengan >> file.log 2>&1, dan ingat cron memakai zona waktu server.

Yang akan kamu pelajari