Apa Itu CronJob? Penjelasan, Cara Kerja, dan Contoh Penggunaan
Cron job adalah tugas terjadwal yang dijalankan secara otomatis oleh sistem berbasis Unix atau Linux. Fitur ini dapat digunakan untuk menjalankan backup, membersihkan file sementara, mengirim laporan, memperbarui data, atau mengeksekusi skrip pada waktu tertentu tanpa harus dipicu secara manual.
Singkatnya, kamu cukup menentukan kapan tugas dijalankan dan perintah apa yang harus dieksekusi. Setelah itu, layanan cron akan memeriksa jadwal dan menjalankan perintah sesuai konfigurasi.

Apa Itu Cron Job?
Cron job adalah kombinasi antara jadwal dan perintah yang disimpan di dalam crontab. Ketika waktu pada jadwal cocok dengan waktu sistem, daemon cron akan menjalankan perintah tersebut.
Cron job umumnya dipakai untuk tugas yang berulang dan tidak membutuhkan interaksi pengguna, misalnya:
- membuat backup database setiap malam;
- menghapus cache atau file sementara secara berkala;
- mengirim laporan pada jam tertentu;
- menjalankan skrip sinkronisasi data;
- memperbarui stok atau data produk;
- menjalankan proses pemeliharaan website.
Cron job bukan nama aplikasi tunggal. Istilah ini merujuk pada tugas yang dikelola oleh layanan cron. Agar tidak tertukar, kamu perlu memahami perbedaan antara cron, cron job, dan crontab.
Perbedaan Cron, Cron Job, dan Crontab
Cron
Cron adalah daemon atau proses latar belakang yang memeriksa jadwal secara berkala. Pada implementasi cron standar, pemeriksaan dilakukan setiap menit. Karena itu, format cron biasa tidak menyediakan kolom detik.
Cron Job
Cron job adalah tugas individual yang berisi jadwal dan perintah. Contohnya, menjalankan skrip backup setiap hari pukul 03.00.
Crontab
Crontab adalah tabel konfigurasi yang menyimpan satu atau beberapa cron job. Setiap pengguna Linux dapat memiliki crontab sendiri, sedangkan administrator juga dapat mengatur crontab tingkat sistem.
Ringkasnya: cron adalah layanan yang menjalankan tugas, cron job adalah tugasnya, dan crontab adalah tempat jadwal tugas disimpan.
Untuk pembahasan yang lebih khusus mengenai file dan perintah crontab, baca artikel mengenal crontab pada Linux.
Bagaimana Cara Kerja Cron Job?
Alur kerja cron job dapat diringkas menjadi empat tahap:
- Jadwal disimpan. Pengguna menambahkan ekspresi waktu dan command ke crontab atau melalui control panel hosting.
- Cron memeriksa waktu. Daemon cron membandingkan waktu sistem dengan setiap jadwal yang aktif.
- Command dijalankan. Jika jadwal cocok, cron mengeksekusi command menggunakan lingkungan sistem yang tersedia.
- Output dicatat atau dikirim. Hasil eksekusi dapat diarahkan ke file log, dikirim melalui email, atau dibuang jika memang tidak diperlukan.
Lingkungan cron biasanya lebih terbatas dibandingkan terminal interaktif. Variabel seperti PATH, direktori kerja, versi PHP, dan permission dapat berbeda. Oleh sebab itu, penggunaan absolute path sangat disarankan.

Format dan Sintaks Cron Job
Entri cron untuk crontab pengguna biasanya terdiri dari lima kolom waktu, kemudian diikuti command:
|
1 |
* * * * * command_to_execute |
- Kolom pertama: menit, dengan nilai 0–59.
- Kolom kedua: jam, dengan nilai 0–23.
- Kolom ketiga: tanggal dalam bulan, dengan nilai 1–31.
- Kolom keempat: bulan, dengan nilai 1–12.
- Kolom kelima: hari dalam minggu, dengan nilai 0–7. Angka 0 dan 7 sama-sama mewakili Minggu.
Setelah lima kolom tersebut, tuliskan command atau lokasi skrip yang akan dijalankan.
Simbol yang Sering Digunakan
*berarti setiap nilai pada kolom tersebut.,digunakan untuk memilih beberapa nilai, misalnya1,3,5.-digunakan untuk rentang, misalnya1-5./digunakan untuk interval, misalnya*/15berarti setiap 15 menit.
Contoh berikut menjalankan command setiap hari pukul 02.30:
|
1 |
30 2 * * * /home/user/scripts/maintenance.sh |
Perhatikan: cron standar bekerja dengan resolusi menit. Jika sebuah tugas harus berjalan setiap beberapa detik atau membutuhkan pemrosesan real-time, gunakan mekanisme lain seperti worker, queue, event scheduler, atau service yang berjalan terus-menerus.
Contoh Penggunaan Cron Job
1. Backup Data Setiap Hari
Command berikut menjalankan skrip backup setiap hari pukul 03.00:
|
1 |
0 3 * * * /usr/local/bin/backup.sh |
Untuk penerapan yang lebih spesifik, lihat panduan backup harian menggunakan cron job.
Untuk penyimpanan backup terpisah,Layanan Object Storage DomaiNesiadapat digunakan sebagai tujuan penyimpanan hasil cron job.
2. Membersihkan Log Setiap Minggu
Command berikut menjalankan skrip pembersihan setiap Minggu pukul 05.00:
|
1 |
0 5 * * 0 /usr/local/bin/cleanup_logs.sh |
3. Menjalankan Pemeliharaan Setiap Bulan
Command berikut menjalankan skrip pada tanggal 25 setiap bulan pukul 03.00:
|
1 |
0 3 25 * * /usr/local/bin/update_system.sh |
4. Mengirim Laporan Harian
Command berikut mengirim laporan setiap hari pukul 06.30:
|
1 |
30 6 * * * /usr/local/bin/send_daily_report.sh |
5. Menyimpan Output ke File Log
Gunakan operator >> untuk menambahkan output ke file log dan 2>&1 untuk menggabungkan pesan error ke file yang sama:
|
1 |
0 2 * * * /usr/local/bin/backup.sh >> /home/user/logs/backup.log 2>&1 |
Jika sebuah tugas gagal, panduan cara melihat log error cronjob dapat membantu proses diagnosis.
Kapan Cron Job Sebaiknya Digunakan?
Cron job cocok digunakan ketika suatu tugas memenuhi sebagian besar kondisi berikut:
- berjalan pada waktu atau interval yang dapat diprediksi;
- tidak membutuhkan interaksi pengguna;
- dapat dieksekusi melalui command atau skrip;
- memiliki durasi yang terkontrol;
- aman dijalankan ulang jika terjadi kegagalan;
- memiliki log atau indikator keberhasilan.
Namun, cron job kurang cocok untuk pekerjaan yang harus dimulai segera setelah sebuah peristiwa terjadi, tugas yang membutuhkan ketepatan hingga detik, atau proses panjang yang berisiko saling tumpang tindih. Untuk kasus tersebut, queue worker, webhook, systemd timer, atau layanan scheduler khusus mungkin lebih sesuai.
Menggunakan Cron Job di Control Panel Hosting
Banyak control panel menyediakan antarmuka visual untuk mengelola cron job. Kamu tetap mengisi lima komponen waktu dan command, tetapi tidak perlu mengedit file crontab secara langsung.
Agar pengelolaan website dan tugas terjadwal lebih praktis, kamu dapatmelihat pilihan Hosting DomaiNesiasesuai kebutuhan website.
cPanel
Di cPanel, cron job dikelola melalui menu Cron Jobs. Pengguna dapat memilih jadwal umum, mengatur lima kolom waktu, menambahkan command, dan menentukan email notifikasi. Untuk langkah lengkap beserta pengujian, ikuti panduan cara menambahkan cron job di cPanel.
aaPanel
aaPanel menyediakan menu Cron yang dapat digunakan untuk menjalankan shell script, backup, atau tugas terjadwal lainnya. Lihat cara konfigurasi cron job di aaPanel untuk implementasinya.
Plesk
Di Plesk, fitur terjadwal tersedia melalui menu Scheduled Tasks. Pengguna dapat menjalankan command, mengambil URL, atau mengeksekusi skrip PHP sesuai konfigurasi server. Baca panduan menambahkan cron jobs di Plesk.

Kesalahan Umum Saat Menggunakan Cron Job
1. Menggunakan Path Relatif
Cron mungkin berjalan dari direktori yang berbeda dari perkiraanmu. Gunakan absolute path untuk binary, skrip, file input, dan file log.
2. Mengandalkan Environment Terminal
Command yang berhasil saat dijalankan melalui terminal belum tentu berhasil melalui cron. Tentukan binary secara eksplisit dan jangan mengandalkan alias atau variabel lingkungan yang hanya tersedia pada sesi terminal.
3. Permission Tidak Sesuai
Pastikan pengguna yang menjalankan cron memiliki izin untuk membaca atau mengeksekusi skrip serta menulis ke direktori output.
4. Timezone Berbeda
Jadwal cron mengikuti timezone server atau konfigurasi yang berlaku pada akun. Periksa timezone sebelum menentukan jam eksekusi, terutama jika pengguna dan server berada di zona waktu berbeda.
5. Menjalankan Job Terlalu Sering
Jika durasi eksekusi lebih lama daripada interval jadwal, proses baru dapat dimulai sebelum proses sebelumnya selesai. Kondisi ini bisa menyebabkan duplikasi pekerjaan dan meningkatkan penggunaan resource.
6. Tidak Menyimpan Output
Tanpa log, kesalahan akan sulit ditelusuri. Pada tahap pengujian, simpan standard output dan standard error ke file yang dapat diperiksa.
7. Menggunakan Command Berisiko Tanpa Pengujian
Command seperti rm, perubahan database, atau sinkronisasi data sebaiknya diuji secara manual terlebih dahulu. Kesalahan path atau parameter dapat menyebabkan data yang salah terhapus atau diperbarui.

FAQ Tentang Cron Job
Apakah cron job tetap berjalan ketika browser ditutup?
Ya. Cron job dijalankan oleh sistem di server, bukan oleh browser pengguna. Selama server dan layanan cron aktif, tugas dapat berjalan sesuai jadwal.
Apakah cron job dapat berjalan setiap detik?
Format cron standar menggunakan lima kolom waktu dan diperiksa setiap menit. Untuk tugas dengan interval detik, gunakan worker atau scheduler lain yang memang mendukung resolusi tersebut.
Mengapa cron job tidak berjalan?
Penyebab yang umum adalah path salah, permission tidak cukup, binary tidak ditemukan, timezone berbeda, sintaks jadwal keliru, atau command gagal ketika dijalankan pada environment cron.
Apakah setiap akun hosting memiliki fitur cron job?
Tidak selalu. Penyedia hosting dapat mengaktifkan, membatasi, atau menonaktifkan fitur tersebut. Interval minimum juga dapat berbeda pada setiap paket dan server.
Apa perbedaan cron job dan scheduled task?
Keduanya sama-sama menjalankan tugas berdasarkan jadwal. Istilah cron job umumnya digunakan pada sistem Unix atau Linux, sedangkan scheduled task lebih umum dipakai sebagai istilah generik atau pada sistem lain.
Kesimpulan
Cron job membantu menjalankan tugas rutin secara otomatis berdasarkan jadwal. Agar hasilnya stabil, gunakan sintaks waktu yang benar, absolute path, permission yang sesuai, interval yang aman, dan file log untuk memantau hasil eksekusi.
Jika kamu menggunakan cPanel dan ingin langsung membuat serta menguji tugas terjadwal, lanjutkan ke panduan setting cron job di cPanel.