Di balik satu baris crontab tersembunyi sebuah arsitektur: daemon crond yang membaca file jadwal, mengecek field waktu setiap menit, lalu menjalankan perintah lewat shell. Episode ini memetakan crond, perintah crontab, /etc/crontab, /etc/cron.d/, direktori cron.hourly/daily/weekly/ monthly, dan peran anacron.

Di episode 1 kita sudah paham sejarah dan alasan cron ada. Sekarang kita bedah mekanismenya: bagaimana satu daemon kecil bernama crond bisa menyalakan puluhan perintah tepat waktu setiap hari, tanpa pernah lupa dan tanpa intervensi manusia.
Memahami arsitektur ini penting sebelum menulis crontab, karena banyak kesalahan klasik — job tidak jalan, job jalan dua kali, atau job jalan di waktu tak terduga — akarnya ada di cara crond membaca dan menginterpretasikan file jadwal. Mari kita buka kap mesinnya.
crond adalah daemon — proses yang berjalan di background sepanjang waktu. Setiap menit, ia bangun, membaca seluruh file jadwal (crontab), membandingkan waktu saat ini dengan field waktu di setiap baris, lalu menjalankan perintah yang cocok.
systemctl status crond
pgrep -x crondAlur kerjanya:
crond membaca crontab per-user dan system files.minute hour day month weekday.Setiap baris crontab punya 5 field waktu di depan perintah:
minute hour day-of-month month day-of-week command* (semua nilai), daftar, rentang, atau step.Sintaks lengkap dan seluruh karakter khusus akan kita bedah detail di episode 3.
Arsitektur cron terdiri dari beberapa file dan direktori yang saling melengkapi:
Dua binary yang berbeda:
crond — daemon yang mengeksekusi jadwal.crontab — program pengelola file jadwal per-user (episode 4).which crond
which crontabFile jadwal tingkat sistem. Bedanya dengan crontab per-user: baris jadwal di sini memiliki field user yang menentukan siapa yang menjalankan perintah.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
25 6 * * * root test -x /usr/sbin/anacron && /usr/sbin/anacronDirektori berisi file jadwal tambahan dengan format yang sama seperti /etc/crontab (termasuk field user). Dipakai oleh paket-paket seperti logrotate untuk mendaftarkan jadwalnya sendiri tanpa menyentuh /etc/crontab.
Direktori khusus yang menjalankan semua script di dalamnya pada interval tertentu, melalui run-parts. Cukup taruh script eksekutabel di /etc/cron.daily/ dan ia otomatis dijalankan tiap hari. Kita bahas detailnya di episode 8.
ls -l /etc/cron.daily/Seperti di episode 1, anacron menangkap job yang terlewat. Di cronie, ia dijalankan dari /etc/cron.daily/ dan membaca konfigurasi /etc/anacrontab. Jika mesin tidur di jam jadwal, job dijalankan begitu mesin aktif lagi.
Untuk memperjelas, ini alur lengkap saat satu menit berganti:
crond bangun, scan semua crontab (per-user di /var/spool/cron/, /etc/crontab, /etc/cron.d/).SHELL.cron.daily dan kawan-kawan dijalankan via run-parts pada jadwalnya.MAILTO atau dibuang.Note
crond tidak mengingat job yang terlewat saat mesin mati. Itu tugas anacron — karena itu keduanya selalu dipasangkan. Cron presisi per menit, anacron presisi per "sudah lewat beberapa hari". Kenali pembagian kerja ini agar tidak salah menaruh job.
| Komponen | Tingkat | Field user? | Dipakai untuk |
|---|---|---|---|
crontab per-user (/var/spool/cron/) | User | Tidak | Jadwal pribadi |
/etc/crontab | System | Ya | Jadwal global |
/etc/cron.d/ | System | Ya | Jadwal paket/opsional |
cron.daily dkk | System | Tidak (root) | Script interval harian |
| anacron | System | Ya | Job tertunda |
Inti yang harus dibawa pulang:
crond adalah daemon yang bangun tiap menit dan mencocokkan field waktu.minute hour day-of-month month day-of-week + perintah./etc/crontab dan /etc/cron.d/.cron.hourly|daily|weekly|monthly dijalankan via run-parts.Di episode 3 selanjutnya kita akan membedah syntax crontab dan field waktu secara penuh — karakter *, ,, -, dan /, nama bulan dan hari, plus aturan-aturan OR/AND yang sering menjebak pemula. Setelah episode ini, kalian akan bisa membaca dan menulis jadwal cron apa pun dengan percaya diri!