Belajar Cron Job (penjadwalan tugas Linux) dari dasar hingga production-grade: pre-requisites skill & setup environment, sejarah latar belakang & mengapa membutuhkannya, konsep dasar & arsitektur utama, syntax crontab & field waktu, mengelola crontab, output mail & logging, environment & PATH di cron, debugging & testing job, anacron & system cron dirs, pattern produksi lock retry & idempotency, otomasi backup & maintenance, randomisasi & avoid peak load, notifikasi & alerting, keamanan crontab allow/deny, scripting aman & secrets, cron di container & Kubernetes CronJob, timezone & DST handling, cronie 1.7.x & fitur terbaru, alternatif modern systemd timers, distributed scheduling K8s CronJob lanjut, monitoring & observability job, roadmap & community, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menyentuh crontab, kalian perlu menguasai terminal Linux, dasar bash (variabel, redirect, exit code), dan konsep waktu/timezone, lalu menyiapkan distro dengan cronie/vixie-cron, akses root atau sudo, serta teks editor. Di episode ini kalian juga memverifikasi bahwa environment benar-benar siap.

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 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.

Lima field waktu crontab — minute, hour, day-of-month, month, day-of-week — menentukan kapan perintah dieksekusi. Episode ini membedah setiap field, karakter *, koma, strip, dan step (/), nama bulan dan hari, hingga aturan OR/AND yang paling sering menjebak pemula.

Crontab dikelola lewat empat perintah utama: crontab -e untuk mengedit, crontab -l untuk melihat, crontab -r untuk menghapus, dan crontab -u untuk mengelola crontab user lain sebagai root. Episode ini juga memetakan /etc/crontab, /etc/cron.d/, dan spool per-user di /var/spool/cron/.

Output job cron tidak hilang begitu saja: secara default ia dikirim melalui email lewat MAILTO, dan jika tidak ada MTA ia membusuk di spool mail. Episode ini mengajarkan redirect output ke file log dengan >> /var/log/cron.log 2>&1, membaca /var/log/cron, dan praktik logging per-job yang benar.

Kenapa script yang berjalan mulus di terminal malah error "command not found" di crontab? Karena cron menjalankan perintah dengan shell minimal /bin/sh dan PATH yang sangat pendek. Episode ini membahas environment terbatas cron dan solusinya: SHELL=/bin/bash, PATH lengkap, dan HOME.

Debugging cron adalah disiplin, bukan tebakan: uji command secara manual dulu, jalankan crond di foreground dengan cron -n, cek exit code, dan gunakan file sentinel untuk membuktikan eksekusi. Episode ini juga memperkenalkan crontab.guru dan strategi pengujian dengan jadwal dekat.

Anacron menjalankan job yang tertunda saat mesin sempat mati — cocok untuk laptop dan workstation. Episode ini membedah /etc/anacrontab, mekanisme timestamp-nya, dan cara /etc/cron.hourly|daily|weekly|monthly bekerja lewat run-parts, plus kapan memakai pendekatan yang mana.

Job cron yang "jalan" belum tentu andal: jika berjalan lebih lama dari intervalnya, ia bisa tumpang tindih dan merusak data. Episode ini mengajarkan flock untuk lock, retry dengan backoff, script idempotent, dan timeout — pola-pola yang membuat job layak produksi.
