Cron
Cron adalah penjadwal pekerjaan di sistem operasi komputer seperti Unix. "cron" adalah singkatan dari "chronograph".
Cron memungkinkan pengguna untuk menjadwal pekerjaan (perintah atau shell script) untuk berjalan secara otomatis pada waktu atau tanggal tertentu. Hal ini umumnya digunakan untuk melakukan pemeliharaan atau administrasi sistem, meskipun mempunyai tujuan yang bersifat umum, cron dapat digunakan untuk keperluan lain, seperti menghubungkan ke internet dan download email.
Tabel cron
Tabel cron biasanya di masukan di bawah folder
/var/spool/cron/crontabs/
Misalnya untuk user root maka file tersebut adalah
/var/spool/cron/crontabs/root
Mengedit tabel cron bisa langsung ke folder / file yang bersangkutan, atau menggunakan perintah
$ crontab -e
dari user yang kita inginkan
operator / sintaks cron
Ada beberapa cara untuk menentukan waktu
- koma (',') menentukan daftar nilai, contoh: "1,3,4,7,8" (spasi tidak digunakan dalam sebuah daftar).
- dash ('-') menentukan sebuah range dari nilai, contoh: "1-6", equivalen dengan "1,2,3,4,5,6"
- asterisk ('*') menentukan semua nilai yang mungkin. Contoh, asterisk pada kolom jam akan sama dengan setiap jam.
- slash ('/') biasa di sebut "step", biasa digunakan untuk meloncati nilai tertentu. Contoh: "*/3" dalam jam artinya sama dengan "0,3,6,9,12,15,18,21".
Contoh berikut akan membersihkan Apache error log setiap satu menit melewati tengah malam setiap hari.
1 0 * * * echo "" > /www/apache/logs/error_log
Contoh slash: script /home/user/test.pl akan di jalankan setiap 5 menit.
*/5 * * * * /home/user/test.pl
Format secara umum
.---------------- menit (0 - 59) | .------------- jam (0 - 23) | | .---------- hari dalam bulan (1 - 31) | | | .------- bulan (1 - 12) ATAU jan,feb,mar,apr ... | | | | .---- hari dalam minggu (0 - 6) (Sunday=0 or 7) ATAU sun,mon,tue,wed,thu,fri,sat | | | | | * * * * * perintah yang dijalankan
Beberapa entry khusus yang mungkin akan berguna
Entry | Keterangan | Equivalen |
---|---|---|
@reboot |
Run satu kali, saat start | None |
@yearly |
Run setahun sekali | 0 0 1 1 *
|
@annually |
(sama dengan @yearly ) |
0 0 1 1 *
|
@monthly |
Run sebulan sekali | 0 0 1 * *
|
@weekly |
Run seminggu sekali | 0 0 * * 0
|
@daily |
Run sehari sekali | 0 0 * * *
|
@midnight |
(sama dengan @daily ) |
0 0 * * *
|
@hourly |
Run setiap jam | 0 * * * *
|
@reboot akan berguna jika user perlu merestart server atau daemon, atau jika user tidak dapat mengakses ke file di bawah /etc/init.d/
Menjalankan Cron
# start cron
# stop cron
# restart cron
Catatan untuk perintah yang di cron
Perintah yang di jalankan oleh cron tampaknya harus full path, tidak bisa berasumsi bahwa PATH di baca oleh cron. Misalnya
dhclient enp2s0
harus lengkap, menjadi
/sbin/dhclient enp2s0