Memahami Crontab Parameter untuk Cronjob Penjadwalan Script atau Bash pada Linux Server

crontab Nov 17, 2019

Cron job digunakan untuk melakukan eksekusi perintah secara otomatis pada waktu yang tertentu dengan perintah bash linux. tidak hanya perintah bash linux, cron job juga bisa menjalankan perintah yang ditulis dengan bahasa pemrograman, misal bahasa pemrograman php dan disimpan dengan extensi .php. eksekusi script php dengan cronjob ini sangat berguna bagi developer web untuk mengembangkan aplikasi berbasis schedules seperti notifikasi otomatis sebagai reminder, spooling email untuk kirim email terjadwal dan masih banyak lagi.

Cron job dilinux menggunakan file crontab, file crontab dapat dibuat pada setiap user yang ada pada linux anda, untuk membuat / edit crontab file, lakukan perintah bash berikut :

#edit atau membuat file crontab
crontab -e

#edit atau membuat file crontab sebagai root
sudo crontab -e

#edit atau membuat file crontab untuk user naja
sudo -u naja crontab -e
edit file crontab

Memahami Jadwal Cronjob dengan Crontab

Crontab adalah cronjob daemon untuk service yang berjalan secara background pada sistem operasi linux, crontab file digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi linux sesuai dengan user, setiap user memiliki file crontab masing-masing.

* * * * * perintah yang akan dieksekusi
– – – – –
| | | | |
| | | | +—– hari dalam seminggu (0 – 7) (minggu=0)
| | | +——- bulan (1 – 12)
| | +——— hari dalam sebulan (1 – 31)
| +———– jam (0 – 23)
+————- menit (0 – 59)
struktur format cronjob

Crontab memerlukan parameter-parameter untuk eksekusinya, parameter diatas memungkinkan kita mengatur waktu yang sesuai dengan kebutuhan kita.

parameter dengan karakter asterisk (*)
parameter dengan karakter (*) adalah karakter wild card dipakai untuk membuat setiap menit, setiap jam, setiap hari, setiap bulan tergantung posisi urutan sesuai dengan format diatas. berikut contohnya :

#eksekusi setiap menit, pada setiap jam, pada setiap hari, pada setiap bulan
* * * * * /home/user/backup.sh
setiap satu menit

parameter dengan katakter koma (,)
parameter dengan karakter (,) dipakai jika ingin eksekusi dalam dua waktu atau lebih dalam satu parameter, berikut contohnya :

#eksekusi setiap menit ke 5, menit ke 10, menit ke 15, menit ke 20 setiap jam, hari dan bulan
5,10,15,20 * * * * /home/user/backup.sh

#eksekusi setiap menit ke 10 pada jam 4 pagi dan jam 4 sore, setiap hari dan setiap bulan
10 4,16 * * * /home/user/backup.sh

#eksekusi setiap menit, pada jam 3 dan jam 5 pagi, setiap hari dan setiap bulan
* 3,5 * * * /home/user/backup.sh
cronjob dengan karakter koma

parameter dengan karakter hyphen (-)
parameter dengan karakter (-) dipakai untuk memberikan jarak waktu untuk eksekusi dalam satu parameter, berikut contohnya :

#eksekusi setiap menit pada jam 2 sampai jam 10
#jika menggunakan koma menjadi sangat panjang, lebih cocok menggunakan hyphen
# * 2,3,4,5,6,7,8,9,10 * * * /home/user/backup.sh
* 2-10 * * * /home/user/backup.sh

#eksekusi setiap menit ke 30 pada jam 6 pagi setiap hari senin sampai jumat
#atau setiap jam 6:30 pagi pada hari senin sampai jumat
30 6 1-5 * * /home/user/backup.sh
cronjob dengan karakter dash

parameter dengan karakter slash (/)
parameter dengan karakter (/) dipakai untuk memberikan interval untuk eksekusi dalam satu parameter, berikut contohnya :

#eksekusi setiap 5 menit pada setiap jam, hari dan bulan
*/5 * * * * /home/user/backup.sh

#eksekusi setiap 10 menit pada jam genap setiap hari dan bulan
*/10 */2 * * * /home/user/backup.sh
cronjob dengan karakter slash

Selain menggunakan karakter khusus, crontab juga bisa menggunakan string khusus sebagai pengganti 5 parameter yang diperlukan crontab, berikut string khusus yang bisa dipakai :

@yearly    (non-standard) #dijalankan sekali setahun = 0 0 1 1 *
@annually  (non-standard) #sama seperti @yearly
@monthly   (non-standard) #dijalankan sekali sebulan = 0 0 1 * *
@weekly    (non-standard) #dijalankan sekali seminggu = 0 0 * * 0
@daily     (non-standard) #dijalankan setiap hari = 0 0 * * *
@hourly    (non-standard) #sama seperti @daily
@reboot    (non-standard) #dijalankan sekali setiap kali sistem reboot
cronjob dengan string khusus

Menggunakan Crontab Editor Berbasis Web

membuat parameter crontab gampang-gampang susah, bisa saja jika kita lalai dengan spasi atau koma atau karakter lain, crontab tidak berjalan sesuai dengan keinginan kita, untuk memudahkan ada baiknya kita menggunakan tools editor yang simple dan mudah, tools yang saya rekomendasikan adalah www.crontab.guru. tampilannya mudah dipahami dan jelas.

cronjob config dengan crontab.guru

jika kita merubah value dari textbox, maka secara responsive menampilkan keterangan, seperti setiap menit pada hari ke 4 dan ke 10 setiap bulannya. mudah bukan

crontab guru

Saya coba sembarang input dengan format yang benar, hasilnya crontab editor mampu menampilkan arti dari parameternya, yaitu setiap menit ke 5, jam 0 setiap hari, di bulan agustus setiap tahun.

Crontab file ini sangat berguna sekali bagi developer ataupun sysadmin, memahami crontab merupakan keharusan, namun dengan adanya crontab editor ini, kita bisa dengan mudah memahami makna dari parameter-parameter crontab.

M. Najamudin Ridha

Penikmat coffe cappucino ice, apalagi tanpa gula. Menyukai teknologi open source, terutama yang berbasis web dan mobile, senang mencoba hal - hal seperti linux, sysadmin, database dan programming