Cron lahir di Unix V7 tahun 1975 dari tangan Ken Thompson — namanya diambil dari "chronos", dewa waktu. Episode ini menelusuri perjalanan vixie-cron menuju cronie 1.7.2, peran anacron untuk mesin non-24/7, dan alasan kuat mengapa penjadwalan tugas otomatis tetap tak tergantikan.

Di episode 0 kita sudah menyiapkan environment: bash, cronie, dan crond yang aktif. Sekarang saatnya memahami kenapa cron ada — sebelum kita membahas bagaimana memakainya. Sebuah tool yang dipahami sejarah dan filosofinya akan dipakai dengan bijak, bukan sekadar diikuti contohnya.
Cron adalah salah satu software tertua yang masih dipakai sehari-hari. Di usianya yang nyaris setengah abad, ia tetap menjadi tulang punggung otomasi server di seluruh dunia. Memahami perjalanan ini juga menjelaskan mengapa ada begitu banyak varian: cronie, vixie-cron, anacron, hingga systemd timers yang akan kita bahas di episode 18.
Cron pertama kali ditulis oleh Ken Thompson di AT&T Bell Labs, dirilis sebagai bagian dari Unix V7 tahun 1975. Ia adalah murid dari sistem penjadwalan yang lebih primitif di Unix V1. Nama cron diambil dari "chronos" — dewa waktu dalam mitologi Yunani. Filosofinya sederhana: jalankan perintah pada waktu tertentu tanpa interaksi manusia.
Desain awal Thompson memakai file spool per-user — pola yang masih kita lihat di /var/spool/cron/ hingga hari ini.
Tahun 1987, Paul Vixie menulis ulang cron secara menyeluruh. Vixie-cron memperkenalkan hal-hal yang kita anggap standar sekarang:
minute hour day month weekday)./etc/crontab dengan field user./etc/cron.d/.cron.allow dan cron.deny untuk kontrol akses.Vixie-cron menjadi standar de facto di BSD dan banyak distro Linux selama dua dekade.
Vixie-cron relatif stagnan, sehingga komunitas membuat fork bernama cronie yang kini menjadi penjadwal default di RHEL, Fedora, dan Arch. Versi aktif terbaru adalah 1.7.2. Cronie mengintegrasikan anacron, memperbaiki pengiriman email (MAILFROM), dan menambah opsi seperti cron -n untuk menunggu job selesai. Kita akan bedah fitur-fitur ini di episode 17.
Cron berasumsi mesin selalu menyala. Untuk laptop dan workstation yang sering tidur, lahir anacron — program yang menjalankan job yang tertunda begitu mesin hidup kembali. Jika job harian terlewat karena laptop mati di jam jadwal, anacron menjalankannya saat boot. Cronie menggabungkan anacron sehingga keduanya bekerja bersama.
Bayangkan harus login manual setiap malam untuk backup database, memutar log, atau membersihkan file temporary. Itu bukan hanya membosankan — itu rawan manusia lupa, terutama di jam 03.00 pagi. Cron menghilangkan ketergantungan pada manusia untuk pekerjaan yang sifatnya deterministik dan rutin.
Tugas yang paling umum diotomasi dengan cron:
rsync, restic, atau pg_dump di jam sepi./tmp, file kadaluarsa, atau job history.Cron sederhana: satu baris di file teks, tanpa dependency, tanpa daemon tambahan. Ia sudah teruji di produksi selama puluhan tahun, dan tersedia di semua Unix-like — Linux, BSD, macOS — dengan sintaks yang sama. Inilah alasan ia bertahan meski banyak alternatif modern bermunculan.
Tip
Kronologi ini penting: Unix V7 (1975) lahir, vixie-cron (1987) mempopulerkan sintaks 5 field, cronie 1.7.2 kini menjadi default modern. Saat membaca dokumentasi distro, bedakan mana yang berasal dari vixie dan mana dari cronie — perbedaannya kecil tetapi nyata di opsi seperti -n.
Untuk menutup episode ini, ini peta varian yang akan sering kalian temui:
| Varian | Kelebihan | Kekurangan | Umum di |
|---|---|---|---|
| vixie-cron | Stabil, historis | Jarang update | BSD, distro legacy |
| cronie 1.7.2 | Aktif, anacron terintegrasi | Konfigurasi lebih kompleks | RHEL, Fedora, Arch |
| anacron | Menjalankan job tertunda | Tidak presisi jam | Mesin non-24/7 |
| systemd timer | Dependensi, logging journal | Berbeda sintaks | Semua distro systemd |
Kalian akan belajar memilih di antara mereka di episode 8 dan 18.
Inti yang harus dibawa pulang:
/etc/crontab.Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur utama cron — bagaimana daemon crond membaca crontab, memetakan field waktu, dan menjalankan perintah lewat shell, lengkap dengan komponen-komponennya: /etc/crontab, /etc/cron.d/, dan direktori cron.daily|hourly|weekly|monthly. Fondasi ini akan membuat episode-episode praktik berikutnya terasa mudah!