Pernah gak sih kamu capek harus login manual tiap hari cuma buat jalanin script backup atau bersihin log lama? Cron job Ubuntu jadi solusinya, tools bawaan Linux yang bisa jadwalin command atau script apapun buat jalan otomatis sesuai waktu yang kamu tentuin, tanpa perlu kamu pantengin sama sekali.
Di artikel ini kita bahas cara setup cron job Ubuntu dari nol, mulai dari sintaks jadwal, contoh praktis, sampai cara cek kalau job-nya gagal jalan. Catatan: ini beda dari WP-Cron bawaan WordPress, kalau kamu ke sini gara-gara error WP-Cron di WordPress, cek artikel ini aja.
Kenapa Butuh Cron Job Ubuntu
Cron itu daemon yang udah ada bawaan di hampir semua distro Linux, jalan di background dan ngecek tiap menit apakah ada job yang harus dieksekusi sesuai jadwal. Ini yang bikin dia jadi andalan buat tugas rutin kayak backup database, rotate log, bersihin file temporary, atau kirim laporan otomatis. Kalau kamu udah baca artikel backup Docker volume sebelumnya, di situ kita sempet singgung cron buat otomatisasi backup, nah di artikel ini kita bahas cron job Ubuntu-nya lebih mendalam.
Buat referensi lengkap, kamu bisa cek dokumentasi resmi Ubuntu Community soal cron.
Pahami Dulu Sintaks Cron Job Ubuntu
Sebelum praktik, penting banget paham format 5 kolom waktu ini, karena kesalahan kecil di sini bisa bikin job kamu jalan di waktu yang salah total:
* * * * * command_yang_mau_dijalanin
| | | | |
| | | | +-- Hari (0-6, Minggu=0)
| | | +---- Bulan (1-12)
| | +------ Tanggal (1-31)
| +-------- Jam (0-23)
+---------- Menit (0-59)
Tanda bintang (*) artinya “setiap”, jadi * * * * * berarti job jalan tiap menit. Kalau bingung, kamu bisa cek situs kayak crontab.guru buat visualisasi jadwal sebelum diterapin beneran. Kesalahan paling umum pemula itu suka ketuker urutan kolom, jadi selalu double-check dulu sebelum simpen, apalagi buat job yang jalan di jam-jam produktif.
1. Cek Status Cron Job Ubuntu
Cron biasanya udah aktif otomatis di Ubuntu, tapi cek dulu buat mastiin:
sudo systemctl status cron
Kalau statusnya inactive, aktifin dulu:
sudo systemctl enable --now cron
2. Buka dan Edit Crontab
Buat edit crontab user kamu sendiri (bukan root), jalankan:
crontab -e
Pertama kali jalanin ini, kamu bakal diminta pilih text editor (biasanya nano paling gampang buat pemula, tinggal pilih nomor sesuai opsinya). Kalau kamu perlu edit crontab root (buat task yang butuh akses admin), tambahin sudo di depannya.
3. Contoh Praktis Cron Job
Beberapa contoh yang sering dipake buat kebutuhan sehari-hari:
# Jalanin script backup tiap hari jam 2 pagi
0 2 * * * /home/user/backup.sh
# Restart service tiap Senin jam 3 pagi
0 3 * * 1 sudo systemctl restart nginx
# Hapus file log lebih dari 7 hari, tiap jam 1 pagi
0 1 * * * find /var/log/myapp -mtime +7 -delete
# Jalanin tiap 15 menit
*/15 * * * * /home/user/check.sh
Simpan file-nya, dan cron otomatis reload jadwal barunya tanpa perlu restart service apapun. Ini beda dari kebanyakan aplikasi lain yang butuh restart manual tiap kali config-nya diubah.
4. Cek Daftar Cron Job yang Aktif
Lihat semua job yang udah kejadwal buat user kamu:
crontab -l
Kalau kosong padahal kamu yakin udah nambahin job, berarti kamu jalanin crontab -e dengan user yang beda pas nambahin tadi.
5. Redirect Output Biar Ada Log
Default-nya, cron kirim output job (kalau ada) lewat email sistem yang jarang dicek orang. Lebih baik redirect ke file log biar gampang di-debug:
0 2 * * * /home/user/backup.sh >> /home/user/backup.log 2>&1
>> nambahin output ke akhir file (bukan nimpa), dan 2>&1 mastiin error message juga ikut kecatat, bukan cuma output normal doang.
Kendala yang Sering Muncul
- Script jalan manual tapi gagal lewat cron
Ini paling sering kejadian gara-gara cron pakai environment variable yang beda dari terminal interaktif. Selalu pakai path absolute (misal/usr/bin/python3, bukan cumapython3) di dalam script maupun command cron. - Cron gak jalan sama sekali
Cek log system dengangrep CRON /var/log/syslogbuat liat apakah cron beneran nyoba eksekusi job kamu atau enggak. - Permission denied pas script dijalanin cron
Pastiin script-nya punya permission execute:chmod +x /path/ke/script.sh. - Job dobel jalan atau timing meleset
Cek timezone server dengantimedatectl, karena cron ngikutin timezone sistem, bukan timezone lokal kamu kalau beda.
Penutup
Nah, segitu aja cara setup cron job Ubuntu buat otomatisasi task sehari-hari. Sekali kamu paham sintaksnya, cron ini jadi salah satu tools paling powerful buat bikin server kamu jalan sendiri tanpa perlu kamu awasin 24 jam. Kalau ada yang error atau nyangkut, drop komentar aja bro.

























