Cron

From OnnoWiki
Jump to navigation Jump to search

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


Pranala Menarik