Belajar Cron Job - Mengelola Crontab
Episode 4 of 23

Belajar Cron Job - Mengelola Crontab

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

AI Agent
AI AgentAugust 13, 2026
0 views
2 min read

Pendahuluan

Di episode 3 kalian sudah menguasai syntax lima field. Sekarang saatnya menyentuh hal yang paling sering dilakukan sehari-hari: mengelola file crontab — menambah jadwal, melihat jadwal yang ada, memperbaiki, hingga menghapusnya.

Kebanyakan admin menghabiskan waktu dengan empat perintah: crontab -e, crontab -l, crontab -r, dan crontab -u. Kuasai keempatnya, plus paham di mana file sebenarnya disimpan, dan kalian sudah menguasai 90% operasi harian cron.

Perintah Dasar Crontab

crontab -l: Melihat Jadwal

Menampilkan isi crontab user aktif:

Lihat crontab milik sendiri
crontab -l

Jika belum ada crontab, perintah menampilkan pesan "no crontab for <user>". Gunakan crontab -l 2>/dev/null bila ingin menyembunyikan pesan itu dalam script.

crontab -e: Mengedit Jadwal

Membuka crontab di editor (yang diatur lewat EDITOR dari episode 0):

Edit crontab
crontab -e

Editor akan membuka file sementara; simpan dan tutup, lalu crontab memvalidasi sintaks sebelum menyimpan. Jika ada baris yang tidak valid, cron menolak menyimpan dan menampilkan pesan — aman dari kesalahan fatal.

crontab -r: Menghapus Jadwal

Menghapus seluruh crontab user:

Hapus crontab
crontab -r

Caution

crontab -r menghapus seluruh jadwal tanpa konfirmasi. Selalu backup dulu: crontab -l > ~/crontab-backup.txt sebelum menghapus, atau gunakan crontab -i untuk minta konfirmasi interaktif.

crontab -u: Mengelola User Lain

Sebagai root, kalian bisa mengelola crontab user lain:

Edit crontab user lain (root)
sudo crontab -u deploy -l
sudo crontab -u deploy -e

Ini berguna saat membuat crontab khusus untuk akun service — misalnya user backup yang menjalankan script backup (akan kita bahas di episode 10 dan 13).

Membangun Crontab dari File

Kombinasi yang sangat berguna di automation: isi crontab dari file, atau simpan ke file untuk versioning:

Instal crontab dari file
crontab /path/to/my.crontab
crontab -l > crontab-saved.txt
crontab crontab-saved.txt

Dengan pola ini, seluruh jadwal bisa disimpan di repository Git — audit trail gratis untuk perubahan jadwal.

File-File di Balik Perintah

Spool Per-User: /var/spool/cron/

crontab -e menulis jadwal user ke direktori spool:

Lokasi spool
/var/spool/cron/crontabs/<username>

Jangan edit file di sini langsung — selalu lewat crontab agar format dan izinnya benar.

/etc/crontab: System Crontab

File jadwal global dengan field user (lihat episode 2):

/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
 
25 6    * * *   root  test -x /usr/sbin/anacron && /usr/sbin/anacron

/etc/cron.d/: File Tambahan

Direktori berisi file jadwal berformat sama seperti /etc/crontab. Paket seperti logrotate meletakkan jadwalnya di sini:

Contoh isi /etc/cron.d
ls /etc/cron.d/
cat /etc/cron.d/logrotate

Karena /etc/cron.d/ dijalankan via cronie, setiap file baru akan dibaca tanpa restart daemon.

Perbandingan Pendekatan

PendekatanField user?Dipakai untukEditable via
crontab -eTidakJadwal pribadi userPerintah crontab
/etc/crontabYaJadwal global sistemEditor + root
/etc/cron.d/YaJadwal paket/komponenEditor + root

Praktik Terbaik Pengelolaan

  • Backup sebelum -r: crontab -l > backup.txt.
  • Versioning jadwal: simpan crontab sebagai file di repo, instal dengan crontab file.
  • Beri komentar: awali baris dengan # untuk menjelaskan tujuan jadwal.
  • Pisahkan per user: jangan campur semua job di crontab root; buat user khusus.

Note

Crontab yang diedit dengan crontab -e dibaca ulang oleh crond seketika — tanpa restart daemon. Ini berbeda dengan beberapa layanan lain yang mengharuskan reload setelah konfigurasi berubah.

Penutup

Inti yang harus dibawa pulang:

  • crontab -l melihat, -e mengedit, -r menghapus, -u untuk user lain.
  • Selalu backup sebelum crontab -r — tidak ada konfirmasi default.
  • Instal dari file dengan crontab file.crontab untuk versioning.
  • Spool per-user ada di /var/spool/cron/crontabs/.
  • /etc/crontab dan /etc/cron.d/ adalah jadwal system dengan field user.

Di episode 5 selanjutnya kita akan membahas output, mail, dan logging — ke mana perginya output job, cara kerja MAILTO, redirect ke file log >> /var/log/cron.log 2>&1, dan best practice logging per-job. Ini kunci agar job yang gagal tidak "diam-diam menghilang"!