Apa itu Cron Job

Cron adalah tool di sistem operasi berbasis UNIX (LinuxUbuntu, dan lain-lain) yang berfungsi untuk menjalankan task atau script secara otomatis.

Oleh karena itu, cron job adalah sebutan penggunaan cron untuk menjadwalkan task di waktu yang sudah ditentukan secara berulang kali.

Perintah Dasar Cron Job

Ada banyak cara untuk membuat dan mengedit cron job. Nah, di tutorial ini, kami menggunakan Linux Shell Prompt (Terminal).

Bagi yang menggunakan VPS di Hostinger, info login bisa didapatkan di tab manajemen (kelola) VPS. Setelah itu, akses server melalui SSH.

Berikut beberapa perintah dasar cron job:

Untuk mengedit file crontab user, Anda harus mengetik perintah ini di terminal:

crontab -e

Hasilnya akan seperti ini.

Hasil perintah crontab -e

Karena yang digunakan adalah vi editor, mau tak mau Anda harus mempelajari perintah dasar vi terlebih dulu agar tidak salah langkah.

Jika ingin mengedit crontab user lain, Anda hanya perlu mengetik crontab -u username -e. Tapi perintah ini hanya bisa dilakukan apabila role Anda adalah superuser, dan Anda wajib menambahkan sudo su sebelumnya.

Perintah dasar cron job untuk mengedit file crontab user lain

Untuk menghapus file crontab user, gunakan perintah ini:

crontab -r

Fungsi -i sama dengan -r. Bedanya, perintah ini akan menampilkan opsi ya atau tidak (yes/no) sebelum user memutuskan untuk menghapus crontab:

crontab -i

Untuk menampilkan isi file crontab yang sedang diakses, jalankan perintah ini di terminal:

crontab -l

Perintah crontab -l dipakai untuk mengecek ada tidaknya file crontab yang dibuat. Jika tidak ada, hasil yang ditampilkan seperti ini.

perintah untuk mengecek ketersediaan file crontab

Untuk mengecek daftar file crontab user lain, role Anda sudah harus superuser agar bisa menggunakan perintah crontab -u username -l.

Perintah untuk mengecek daftar file crontab user lain

Selain perintah dasar, Anda juga wajib mempelajari syntax dasar cron job.

Pada umumnya, file crontab terdiri atas dua bagian, yakni pengatur waktu atau jadwal (schedule timer) dan perintah (command). Berikut cara penulisan perintahnya:

* * * * * /bin/sh backup.sh
  • ***** /bin/sh backup.sh cronjob akan menjalankan backup setiap menit.
  • 30 18 * * * rm /home/sydtesting/tmp/* akan menghapus file tmp dari /home/sydtesting/tmp tepat pada jam 18.30 setiap harinya.

Cara Penulisan Cron Syntax yang Benar

File crontab memiliki lima field yang disimbolkan dengan tanda bintang. Masing-masing menunjukkan pengaturan tanggal dan waktu untuk menjalankan sebuah task secara berulang.

File crontab memiliki lima field
  • Menit (Minute) – menunjukkan di menit ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 59.
  • Jam (Hour) – menunjukkan di jam ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 23.
  • Hari di bulan tertentu (Day of the month) – menunjukkan di hari apa perintah akan dijalankan. Tanggalnya dimulai dari tanggal 1 sampai 31.
  • Bulan (Month) – menunjukkan di bulan apa perintah akan dijalankan, dimulai dari bulan 1 hingga 12.
  • Hari di minggu tertentu (Day of the week) – menunjukkan di hari apa perintah akan dijalankan, dimulai dari hari 0 sampai 7.

Anda juga harus menggunakan karakter yang tepat di setiap file crontab:

  • Tanda bintang (*) – untuk mengatur semua parameter jadwal atau waktu.
  • Koma (,) – untuk menjalankan satu perintah di dua atau lebih dari dua waktu yang berbeda.
  • Tanda penghubung (-) – satu perintah bisa dijalankan dalam beberapa kali waktu atau hari. Tanda ini digunakan untuk menentukan rentang waktunya.
  • Garis miring (/) – untuk membuat interval dalam rentang waktu tertentu.
  • Last (L) – mereferensikan hari di minggu terakhir pada suatu bulan. Misalnya, di bulan tersebut hari terakhirnya adalah hari Rabu. Maka 3L berarti hari Rabu terakhir.
  • Weekday (W) – untuk menentukan hari kerja di waktu tertentu. Misalnya, Anda menjadwalkan satu minggu (1W). Apabila hari pertama (1st) – yang juga adalah akhir pekan – adalah Sabtu, perintah baru akan dijalankan di hari ketiga (hari kerja), yakni Senin (3rd).
  • Tanda pagar (#) – untuk menentukan hari di minggu tertentu. Biasanya hadir di kisaran 1 sampai 5. Misalnya, 1#2 berarti Senin kedua (hari pertama di minggu kedua).
  • Tanda tanya (?) – membiarkan field kosong.

12 Contoh Syntax Cron

Kini Anda sudah mengetahui cara menulis cron syntax yang benar, kan? Selanjutnya, kami akan memberikan beberapa contoh supaya Anda bisa lebih memahami penggunaan perintah yang telah kami jelaskan di atas.

Perlu diingat, output yang dihasilkan perintah ini akan otomatis dikirimkan ke akun email Anda. Jika merasa terganggu dengan banyaknya kiriman email, tambahkan >dev/null/ 2>&1 ke syntax. Kiriman ke email akan dinonaktifkan. Berikut contohnya:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Tapi kalau Anda ingin mengalihkan kiriman output ke akun lain yang lebih spesifik, tambahkan MAILTO yang lalu diikuti dengan alamat email. Ini contohnya:

MAILTO="[email protected]"
0 3 * * * /root/backup.sh >/dev/null 2>&1

Daftar contoh syntax lainnya:

SyntaxArti
0 0 * * * /bin/sh backup.shUntuk menjalankan database pada tengah malam dan juga untuk menjalankan database sekali sehari.
0 6,18 * * * /bin/sh backup.shUntuk menjalankan backup database dua kali sehari, yakni pada jam 6 pagi dan 6 sore.
0 */6 * * * /scripts/monitor.shUntuk melakukan pemantauan atau monitor setiap enam jam.
*/10 * * * * /home/user/script.shUntuk menjalankan cron job file script yang ada di direktori home setiap 10 menit.
0 * 20 7 * /bin/sh backup.shUntuk menjalankan backup database setiap jam hanya pada tanggal 20 Juli.
0 0 * * 2 * /bin/shUntuk menjalankan backup database pada tengah malam setiap hari Selasa.
* * * 1,2,5 *  /script/script.shUntuk menjalankan perintah di bulan Januari, Februari, dan Mei.
10-59/5 5 * * * /home/user/script.shUntuk menjalankan perintah setiap 5 menit di jam 5 pagi. Waktunya dimulai dari jam 5.10.
0 8 1 */3 * /home/user/script.shUntuk menjalankan perintah setiap tiga bulan di hari pertama pada jam 8 pagi.
* * * * * /scripts/script.sh; /scripts/scrit2.shUntuk menjadwalkan berbagai job di satu cron job.
@reboot /scripts/script.shUntuk menjalankan task tertentu setiap kali sistem diaktifkan.
0 0 1 * *  /home/user/script.shUntuk menjalankan perintah di hari pertama setiap bulan.

Hak Akses Cron

Cron job memiliki dua file penting.

  • /etc/cron.allow – jika ada cron.allow, nama user harus tercantum agar dia bisa menggunakan cron job.
  • /etc/cron.deny – jika file cron.allow tidak ada tapi yang ada malahan file cron.deny, nama user tidak boleh ada di file cron.deny agar dia bisa menggunakan cron job.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *