Tutorial Penggunaan Crontab Scheduler di Ubuntu
Apa itu cron / crontab ? Crontab adalah aplikasi daemon (berjalan dibalik layar) yang digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi linux. Setiap user di sistem yang memiliki file crontab, mengijinkan file tersebut untuk melakukan suatu aksi yang telah dispesifikasikan sesuai waktu yang telah ditentukan. Crontab biasa digunakan untuk membuat backup secara otomatis, sinkronisasi files, dll.
1. Install crontab
Buat yang belum diinstall crontab-nya, cara install nya adalah :
sudo apt-get install cron
2. Melihat aktifitas crontab
Untuk melihat schedule yang sedang berjalan di sistem Anda :
sudo crontab -l
3. Mengedit cron jobs
sudo crontab -e
editor default dari cron adalah vi atau pico
4. Format penulisan cron
Format penulisan crontab ditulis dengan format seperti ini :
* * * * * /home/sigit/script.sh
Penjelasan :
5 bintang (*) diatas merepresentasikan bagian2 format tanggal yang berbeda, urutannya sebagai berikut :
1. (* pertama) : menit (isian : 0 – 59)
2. (* kedua) : jam (isian : 0 – 23)
3. (* ketiga) : hari dari bulan / tanggal (isian : 1 – 31)
4. (* keempat) : bulan (isian : 1 – 12)
5. (* kelima) : hari dari minggu (isian : 0 – 6) –> 0 = minggu
Contoh :
> Eksekusi setiap menit :
* * * * * php /opt/lampp/htdocs/jobs/test.php
jadwal tersebut akan mengeksekusi perintah php pada setiap menit dari setiap jam, setiap hari, setiap minggu, setiap bulan ::bingung::, pokoknya setiap menit dah.
> Eksekusi setiap Sabtu jam 12 siang :
0 12 * * 6 /home/sigit/script.sh
(* pertama) artinya pada menit ke 0, (* kedua) artinya pada jam ke 12, (* ketiga) artinya pada tanggal berapapun, (* keempat) artinya pada setiap bulan, (* kelima) artinya pada setiap hari sabtu (6 = sabtu). (semoga ngga bingung)
> Eksekusi pada jam 9 malam setiap hari kerja (Senin – Jumat) :
0 21 * * 1-5 /home/sigit/script.sh
Arinya sama mirip-mirip ama diatas, cuma (* kelima) diisi rentang, yaitu 1-5 (artinya senin-jumat)
> Eksekusi setiap menit ke 30 (setiap jam) pada setiap tanggal 1 (setiap bulan)
30 * 1 * * /home/sigit/script.sh
5. Tips and Trick
> Misalnya kita mau jalanin suatu perintah setiap 10 menit (tiap hari), penulisannya bisa seperti ini :
0,10,20,30,40,50 * * * * /home/sigit/script.sh
Tapi ada trik penulisan yang lebih gampang, caranya seperti ini :
*/10 * * * * /home/sigit/script.sh
arti dari (*/10) adalah (ngerti lah). ![]()
> kode-kode special
crontab menyediakan kode-kode special untuk digunakan, berikut kodenya :
@reboot Run once, at startup @yearly Run once a year "0 0 1 1 *" @annually (same as @yearly) @monthly Run once a month "0 0 1 * *" @weekly Run once a week "0 0 * * 0" @daily Run once a day "0 0 * * *" @midnight (same as @daily) @hourly Run once an hour "0 * * * *
Cara pemakaian :
@daily /home/sigit/script.sh
6. Menyimpan log crontab
Supaya kita bisa memonitor pekerjaan crontab kita, hasil log bisa disimpan dalam file, caranya seperti berikut :
@daily /home/sigit/script.sh 2>&1 >> /home/sigit/log/crontab_schedule.log
atau bisa dikirim ke email (harus install mailx dulu), caranya :
@daily /home/sigit/script.sh 2>&1 | mail -s "Cronjob Log sgt.wibowo@gmail.com
Itu dulu yang bisa saya tulis, kalo ada pertanyaa, sanggahan, atau penambahan silahkan hubungi saya

Wah tutorial nya lengkap niy lumayan buat refresnsi
thank ya
sama2 bos, terimakasih udah berkunjung
Mas, kalo saya mau bikin supaya sevice imapd nya di restart tiap 20 menit sekali gmn ya mas? tolong kasih contoh mas
Terima kasih
buat aja mas script untuk ngejalanin restart imapdnya di file shell scripting, misalnya restart_imapd.sh
cara buatnya mirip sama yang ini kali, cuma beda script restartnya : http://gosigitgo.wordpress.com/2010/03/29/memanfaatkan-crontab-untuk-backup-database-mysql-secara-otomatis/
selanjutnya, jalanin crontabnya, script crontabnya gini mas :
*/20 * * * * /home/sigit/restart_imapd.sh
mungkin bisa membantu mas.
makasih banyak mas tutorialannya, sangat membantu.saya pemula nih pake linux, njajal pake ubuntu karmic koala juga
ngomong2 saya khan mau bikin logfile. saya sudah buat scriptnya pake php. di script itu sudah saya atur sedemikian rupa, apa saja yang harus saya catat nanti.
jadi kalau ingin script itu jalan setiap 1 jam sekali katakan, saya hanya perlu ngetik di terminal seperti inikah :
” @hourly /var/www/log.php ”
atau
” 0 * * * * php /var/www/log.php ”
atau saya harus buat file crontab baru dan edit disana?
mohon penjelasannya,
hatur nuhun ya..
salam kenal .
Terima kasih mas sudah berkunjung.
mungkin begini mas, perintah :
@hourly php /var/www/log.php
nya diketikkan di crontab editor, cara membuka crontab editornya :
sudo crontab -e
Semoga membantu.
oke mas, saya coba dulu. makasih banyak
mas waktu saya coba
” sudo crontab -e ”
ketik
” @hourly php /var/www/logs.php ”
kok error yah??
setelah disimpen & keluar editor, ada kalimat
/tmp/crontab.WIhOZ5/crontab”:0: bad hour
error in crontab file, cant install.
kenapa ya?
apa karena ada job lainnya, disitu soalnya juga ada jobnya mrtg ku.
format penulisan saya ganti jadi
” */10**** php /var/www/logs.php ”
juga sama, gak bisa.
tapi pas saya ketik
” crontab -e ”
lalu saya tulis
” @hourly php /var/www/logs.php ”
bisa,dah ditunggu tapi script mau gak jalan.
kenapa ya mas?
sudah yakin kalau crontabnya jalan ? biasanya ada kesalahan pada proses instalasi, cek lagi aja jalanin crontab untuk perintah-perintah sederhana. atau mungkin kesalahan lainnya PHP nya belum diinstall (maksudnya script untuk menjalankan php via shell).
makasih atas tutorialnya. tapi saya ada masalah, biar crontab ga ngirim email gimana ya mas?
Tinggal dihapus aja mas perintah setelah pipelinenya. misalnya gini :
@daily /home/sigit/script.sh 2>&1 | mail -s “Cronjob Log sgt.wibowo@gmail.com
diubah menjadi :
@daily /home/sigit/script.sh
mas Sigit Yth,
maaf mo nanya,
apakah WWW tsb artinya website ybs?(umpamanya http://www.indonesiawaterinstitute.org atau biarkan saya spt itu?
maklum ga ngerti php sama sekali
www itu lokasi Web Servernya mas, kalo pake PHP di Linux biasanya diinstall di direktori /var/www/
halo mas sigit, terimakasih mas berbagi ilmunya.
saya bingung nih dengan gambar command diatas, dan mau bertanya.
dibintang ke 2 bisa tidak mendefinisikan jam seperti ini 20-2, maksudnya saya ingin menjalankan proses dari jam 8 malam sampai jam 2 pagi saja?
contoh, * 20-2 * * * /file.
mas mohon pencerahan nih mas, begini Mas Sigit, saya punya mesin squid di ubuntu 10.10, saya pingin mesin squid sy itu shutdown apabila komputer dg ip 192.168.10.12 mati, maka squid sy juga otomatis shutdown, mohon contoh bagaimana membuat script dan susunan crontab seperti itu mas… terima ksih sebelumnya
Salam
Newbi Linux
Bagus nih, untuk referensi. Salam kenal, Mas! Kapan-kapan main ke blog saya, yah?
wahhhh… keren tutorialnya mas,,, sangat membantu saya
mw nanya mas… klu saya mw mengintegrasikan dengan sms gateway gmn ya??
FYI : saya lg buat TA sistem pendeteksi penyusup jaringan menggunakan snort yang pelaporan nya menggunakan sms
nah rencana saya menggunakan crontab ini untuk mengirimkan sms log ids nya,
mohon bantuannya dan info nya mas,,,
terimakasih
@Adri : Hubungan Cron sama penyusup jaringan apa mas bukannya Cron itu terjadwal sedangkan penyusup itu tidak…
mas izin save di doc tutnya. bt dibaca2 nanti:)
Ehm… sekali googling -> sekali mencet link -> dan langsung dapet ini… Good Luck buddy!!! Teruskan dengan tutorial-tutorialnya…
salam kenal mas..saya baru di linux..ni mau belajar ubuntu
mohon pencerahannya mas..untuk shutdown pc ubuntunya dan hidupin lagi secara otomatis pada jam tertentu bisa mas dengan perintah crontab?
mas nanya lagi ni mas.boleh mas ya…kalau pc ubuntunya sering shutdown terus diidupin lagi pada jam tertentu setiap hari (contoh pc shutdown setiap jam 12 malam trus aktif lagi jam 8 pagi) efek sampingnya bagi ubuntunya apa mas ya?
…(mohon maaf mas tatabahasa saya hancur-hancuran)
Terimakasih..