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!===