menu

What is - Crontab


Crontab merupakan sebuah sistem pada Linux yang bekerja dibalik layar yang dapat menjalankan sebuah perintah coding secara otomatis dan berkala.

Crontab ini sangat berguna untuk memudahkan developer dalam melakukan suatu pekerjaan yang dilakukan secara berulang-ulang.

Dengan Crontab seorang developer tidak perlu lagi menjalankan sebuah program yang dibuat untuk melakukan suatu hal secara manual, karena dengan Crontab program tersebut dapat dijalankan secara otomatis dan berkala.

Oke berikut sintax-sintax dari Crontab.
crontab -e      //Edit file crontab, atau buat baru jika belum pernah ada.
crontab -l      //Menampilkan isi dari file crontab.
crontab -r      //Menghapus file crontab.

//jika crontab belum terinstall diubuntu bisa menggunakan code
sudo apt-get install cron

Aturan penjadwalan dalam Crontab.
*  *  *  *  * path/file/yang/akan/dieksekusi.sh
.  .  .  .  .
.  .  .  .  ----> hari dari minggu (0–6) dimana 0 = minggu
.  .  .  .
.  .  .  -------> bulan (1–12)
.  .  .
.  .  ----------> hari dari bulan / tanggal (1–31)
.  .
.  -------------> jam (0-23)
.
----------------> menit (0-59)

//eksekusi dalam menit
* * * * * path/file/yang/akan/dieksekusi.sh (ini tiap menit)
*/5 * * * * path/file/yang/akan/dieksekusi.sh (ini tiap 5 menit)
2,3,7,57 * * * * path/file/yang/akan/dieksekusi.sh (ini tiap menit ke 2,3,7,57)

//eksekusi dalam jam
0 6 * * * path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi)
0 6 * * 1 path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi hari senin)
0 6 * * 1-5 path/file/yang/akan/dieksekusi.sh (ini tiap jam 6 pagi hari senin sampai jum'at)

//eksekusi dengan code
@reboot     Mengeksekusi satu kali setiap menghidupkan sistem ubuntu
@yearly     Mengeksekusi satu kali setiap tahun  ==  "0 0 1 1 * (ini tiap tanggal 1 bulan 1)"
@annually   Sama seperti @yearly
@monthly    Mengeksekusi satu kali setiap bulan  ==  "0 0 1 * * (ini tiap tanggal 1)"
@weekly     Mengeksekusi satu kali setiap minggu   ==  "0 0 * * 0 (ini tiap hari minggu)"
@daily      Mengeksekusi satu kali setiap hari   ==   "0 0 * * * (ini tiap jam 12 malam)"
@midnight   Sama seperti @daily
@hourly     Mengeksekusi satu kali setiap jam  ==  "0 * * * * (ini tiap menit pertama)"

//menyimpan log crontab
@daily path/file/yang/akan/dieksekusi.sh 2>&1 >> /home/sigit/log/crontab_schedule.log

//mengirim log ke email
@daily path/file/yang/akan/dieksekusi.sh 2>&1 | mail -s "Cronjob Log codedoct@gmail.com

//menjalankan file php pada crontab
@daily /usr/bin/php /path/file/yang/akan/dieksekusi.php

===DONE!===