Cara menggunakan cronjob php ubuntu

Apa itu cron / crontab ? Crontab adalah aplikasi daemon (berjalan dibalik layar) yang digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi linux. Setiap user di sistem yang memiliki file crontab, mengijinkan file tersebut untuk melakukan suatu aksi yang telah dispesifikasikan sesuai waktu yang telah ditentukan. Crontab biasa digunakan untuk membuat backup secara otomatis, sinkronisasi files, dll.

1. Install crontab

Buat yang belum diinstall crontab-nya, cara install nya adalah :

sudo apt-get install cron

2. Melihat aktifitas crontab
Untuk melihat schedule yang sedang berjalan di sistem Anda :

sudo crontab -l

3. Mengedit cron jobs

sudo crontab -e

editor default dari cron adalah vi atau pico
4. Format penulisan cron
Format penulisan crontab ditulis dengan format seperti ini :

* * * * * /home/sigit/script.sh

Cara menggunakan cronjob php ubuntu

Penjelasan :
5 bintang (*) diatas merepresentasikan bagian2 format tanggal yang berbeda, urutannya sebagai berikut :
1. (* pertama) : menit (isian : 0 – 59)
2. (* kedua) : jam (isian : 0 – 23)
3. (* ketiga) : hari dari bulan / tanggal (isian : 1 – 31)
4. (* keempat) : bulan (isian : 1 – 12)
5. (* kelima) : hari dari minggu (isian : 0 – 6) –> 0 = minggu
Contoh :
> Eksekusi setiap menit :

* * * * * php /opt/lampp/htdocs/jobs/test.php

jadwal tersebut akan mengeksekusi perintah php pada setiap menit dari setiap jam, setiap hari, setiap minggu, setiap bulan ::bingung::, pokoknya setiap menit dah.
> Eksekusi setiap Sabtu jam 12 siang :

0 12 * * 6 /home/sigit/script.sh

(* pertama) artinya pada menit ke 0, (* kedua) artinya pada jam ke 12, (* ketiga) artinya pada tanggal berapapun, (* keempat) artinya pada setiap bulan, (* kelima) artinya pada setiap hari sabtu (6 = sabtu). (semoga ngga bingung)
> Eksekusi pada jam 9 malam setiap hari kerja (Senin – Jumat) :

0 21 * * 1-5 /home/sigit/script.sh

Arinya sama mirip-mirip ama diatas, cuma (* kelima) diisi rentang, yaitu 1-5 (artinya senin-jumat)
> Eksekusi setiap menit ke 30 (setiap jam) pada setiap tanggal 1 (setiap bulan)

30 * 1 * * /home/sigit/script.sh

5. Tips and Trick
> Misalnya kita mau jalanin suatu perintah setiap 10 menit (tiap hari), penulisannya bisa seperti ini :

0,10,20,30,40,50 * * * * /home/sigit/script.sh

Tapi ada trik penulisan yang lebih gampang, caranya seperti ini :

*/10 * * * * /home/sigit/script.sh

arti dari (*/10) adalah (ngerti lah). 😀
> kode-kode special
crontab menyediakan kode-kode special untuk digunakan, berikut kodenya :

sudo crontab -l
0

Cara pemakaian :

sudo crontab -l
1

6. Menyimpan log crontab
Supaya kita bisa memonitor pekerjaan crontab kita, hasil log bisa disimpan dalam file, caranya seperti berikut :

sudo crontab -l
2

atau bisa dikirim ke email (harus install mailx dulu), caranya :

sudo crontab -l
3

Itu dulu yang bisa saya tulis, kalo ada pertanyaa, sanggahan, atau penambahan silahkan hubungi saya

Advertisement

Share this:

  • Twitter
  • Facebook

Like this:

Like Loading...

Related

201003/18CATEGORYcrontab
ubuntuTAGScrontab
ubuntu

Meskipun sintaks penjadwalan pekerjaan baru mungkin tampak menakutkan pada pandangan pertama, itu sebenarnya relatif sederhana untuk dipahami setelah Anda memecahnya. Pekerjaan cron akan selalu memiliki lima kolom yang masing-masingnya mewakili 'operator' kronologis diikuti oleh lintasan dan perintah penuh untuk mengeksekusi:

* * * * * home/path/ke/command/the_command.sh

Masing-masing kolom kronologis memiliki relevansi spesifik dengan jadwal tugas. Mereka adalah sebagai berikut:

Minutes represents the minutes of a given hour, 0-59 respectively.
Hours represents the hours of a given day, 0-23 respectively.
Days represents the days of a given month, 1-31 respectively.
Months represents the months of a given year, 1-12 respectively.
Day of the Week represents the day of the week, Sunday through Saturday, numerically, as 0-6 respectively.

 

Cara menggunakan cronjob php ubuntu

 

Apa Itu Cron Job?

Cron adalah tool yang memungkinkan user menginput command (perintah untuk menjadwalkan tugas berulang pada waktu tertentu. Cron job adalah tugas yang dijadwalkan di cron. User bisa menentukan tugas yang mereka inginkan untuk dijalankan secara otomatis beserta waktu eksekusinya.

Selain itu, cron merupakan daemon, yaitu background process (proses latar belakang) yang mengeksekusi tugas non-interaktif. Anda mungkin sudah sering melihat background process di Windows, seperti Services, yang kerjanya mirip dengan cron daemon.

Daemon selalu dalam keadaan idle (stand-by), yang menunggu perintah untuk mengeksekusi tugas tertentu. Perintah tersebut bisa diinput melalui komputer apa pun yang ada di jaringan.

Kemudian, ada juga cron file, yaitu file teks sederhana yang berisi command yang perlu dijalankan secara berkala pada waktu tertentu. File tabel cron sistem default atau file konfigurasi crontab adalah /etc/crontab, yang berada di direktori crontab /etc/cron.*/.

Hanya administrator sistem yang bisa mengedit file crontab sistem. Tapi, sistem operasi serupa Unix mendukung beberapa admin sekaligus. Jadi, setiap admin tersebut bisa membuat file crontab dan menulis command untuk menjalankan job kapan pun mereka menginginkannya.

Dengan adanya cron job, user bisa mengotomatiskan pemeliharaan sistem, pemantauan ruang disk, dan penjadwalan backup. Karena kemampuannya ini, cron job cocok untuk komputer yang harus berjalan non-stop, misalnya server.

Cron job memang umumnya digunakan administrator sistem, tapi para web developer juga bisa menggunakannya.

Contohnya, sebagai administrator website, Anda bisa mengonfigurasi:

  • satu cron job untuk backup website otomatis setiap hari pada tengah malam
  • satu cron job untuk mengecek broken link setiap Senin tengah malam
  • satu cron job lagi untuk menghapus cache website setiap Jumat siang

Sayangnya, seperti halnya program lainnya, cron memiliki keterbatasan yang mungkin perlu Anda pertimbangkan sebelum mulai menggunakannya:

  • Interval tersingkat antara dua cron job adalah 60 detik. Anda tidak bisa mengulangi job untuk waktu kurang dari 59 detik.
  • Terpusat pada satu komputer. Cron job tidak bisa didistribusikan ke beberapa komputer dalam satu jaringan. Jadi, kalau komputer yang menjalankan cron job mengalami crash, tugas yang sudah terjadwal tidak akan dieksekusi. Tugas yang terlewatkan tersebut hanya bisa dijalankan secara manual.
  • Tidak ada mekanisme coba ulang otomatis. Cron dirancang untuk eksekusi pada waktu yang sudah ditentukan. Kalau salah satu tugas gagal dijalankan, tugas tersebut tidak akan dijalankan lagi hingga waktu terjadwal berikutnya. Keterbatasan ini menjadikan cron kurang sesuai untuk tugas bertahap.

Meskipun memiliki keterbatasan, cron masih menjadi solusi yang tepat untuk tugas sederhana yang perlu dijalankan pada waktu tertentu, dengan interval reguler selama setidaknya 60 detik.

Kalau Anda ingin menjadwalkan job yang hanya dilakukan satu kali, sebaiknya pertimbangkan metode lain.

Tips Berguna

Sebelum membuat cron job, pastikan script Anda bisa dieksekusi. Caranya, buka file di browser Anda (menggunakan URL) atau jalankan script melalui SSH (tergantung pada jenis script Anda). Kalau script tidak bisa dijalankan, hubungi developer untuk mendapatkan bantuan.

Operasi Dasar Cron Job

Bagian ini akan menunjukkan cara menjadwalkan cron job, dengan menginput command ke program shell seperti Bash di Linux atau sistem operasi serupa Unix lainnya.

VPS hosting dari Hostinger menggunakan sistem operasi berbasis Linux. Jadi, sebaiknya pelajari cara menjadwalkan cron job agar Anda bisa turut meningkatkan efisiensi alur kerja Anda sebagai administrator VPS. Command line untuk VPS bisa diakses melalui PuTTY SSH.

Sebelum menuju ke operasi dasar cron, penting untuk memahami lebih dulu berbagai file konfigurasi cron job:

  • System crontab. Gunakan file ini untuk menjadwalkan job penting pada skala sistem, yang hanya bisa diubah dengan hak izin akses root.
  • User crontab. File ini memungkinkan user membuat dan mengedit cron job yang hanya berjalan pada tingkat user.

Kalau ingin mengedit system crontab, pastikan user memiliki hak izin akses root.

Berikut ini adalah beberapa operasi dasar yang bisa dilakukan cron:

Cara menggunakan cronjob php ubuntu

Untuk membuat atau mengedit file crontab, masukkan command berikut:

crontab -e

Apabila tidak ada file crontab yang ditemukan pada sistem Anda, command akan otomatis membuat yang baru. crontab -e memungkinkan Anda menambahkan, mengedit, dan menghapus cron job.

Untuk mengedit file crontab, Anda memerlukan editor teks seperti vi atau nano. Saat pertama kali memasukkan crontab -e, Anda akan diminta menentukan editor teks yang ingin digunakan untuk mengedit file crontab.

Untuk melihat daftar tugas terjadwal yang aktif di sistem Anda, masukkan command berikut:

crontab -l

Kalau sistem Anda memiliki beberapa user, Anda bisa melihat daftar file crontab user dengan memasukkan command berikut ini sebagai superuser:

crontab -u username -l

Selain itu, Anda juga bisa mengedit job terjadwal user lain dengan mengetikkan command crontab berikut:

sudo su crontab -u username -e

Untuk mendapatkan hak izin akses root bagi Anda sendiri, tambahkan sudo su di awal command. Beberapa command (termasuk yang di atas) hanya bisa dieksekusi oleh user root.

Terakhir, untuk menghapus semua tugas terjadwal di file crontab dan memulai yang baru, ketikkan command berikut:

crontab -r

Command berikut ini sama dengan command crontab -r, tapi user akan melihat pilihan yes/no sebelum menghapus crontab:

crontab -i

Selain crontab, user root juga bisa menambahkan cron job ke direktori etc/cron.d. Langkah ini cocok untuk eksekusi script pada instalasi otomatis dan update.

Perlu diingat bahwa user yang menambahkan cron job ke direktori ini harus memiliki akses root dan mengikuti konvensi penamaan run-parts.

Selain itu, user root bisa memindahkan script mereka ke direktori berikut ini untuk menjadwalkan eksekusinya:

  • /etc/cron.hourly/ – Mengeksekusi semua script satu kali dalam satu jam
  • /etc/cron.daily/ – Mengeksekusi satu kali dalam satu hari
  • /etc/cron.weekly/ – Mengeksekusi satu kali dalam satu minggu
  • /etc/cron.monthly/ – Mengeksekusi satu kali dalam satu bulan

Syntax Crontab

Cara menggunakan cronjob php ubuntu

Untuk membuat cron job, Anda harus memahami syntax (sintaksis) dan format cron lebih dulu. Kalau tidak, Anda mungkin akan kesulitan mengatur cron job.

Syntax crontab terdiri dari lima field dengan value berikut:

  • Minute. Menit saat command akan dijalankan, antara 0 sampai 59.
  • Hour. Jam saat command akan dijalankan, dengan rentang 0-23 (format waktu 24 jam).
  • Day of the month. Hari dalam suatu bulan yang diinginkan user untuk menjalankan command, dengan rentang 1-31.
  • Month. Bulan yang user inginkan untuk menjalankan command, dengan rentang 1-12 untuk Januari sampai Desember.
  • Day of the week. Hari dalam satu minggu saat perintah akan dijalankan, dengan rentang 0-6 yang mewakili Minggu sampai Sabtu. Dalam beberapa sistem, value 7 mewakili hari Minggu.

Semua field ini harus diisi dan tidak boleh dibiarkan kosong.

Sebagai contoh, kalau Anda ingin menyiapkan cron job untuk menjalankan root/backup.sh setiap Jumat pukul 17.37, cron command Anda akan menjadi seperti ini:

37 17 * * 5 root/backup.sh

Value 37 dan 17 di atas mewakili pukul 17.37. Dua tanda bintang untuk value Day of the month dan Month mewakili value apa pun yang memungkinkan. Artinya, tugas tersebut akan diulang pada semua tanggal dan semua bulan. Terakhir, value 5 mewakili hari Jumat. Deretan angka tersebut kemudian diikuti oleh lokasi tugas.

Kalau merasa kurang yakin untuk menulis sintaksis cron secara manual, Anda bisa menggunakan tool gratis seperti Crontab Generator atau Crontab.guru untuk mendapatkan angka yang tepat bagi waktu dan tanggal yang perlu dimasukkan dalam command.

Anda harus benar-benar memahami operator cron job agar bisa mengatur waktu yang tepat untuk cron command. Operator ini memungkinkan Anda menentukan value mana yang ingin dimasukkan ke setiap field. Anda harus menggunakan operator yang tepat di semua file crontab.

  • Tanda bintang atau asterisk (*). Gunakan operator ini untuk mewakili semua value yang bisa digunakan dalam suatu field. Misalnya, apabila Anda ingin cron job dieksekusi setiap menit, tulis tanda bintang pada field Minute.
  • Tanda koma (,). Gunakan operator ini untuk mencantumkan beberapa value sekaligus. Misalnya, menulis 1,5 pada field Day of the week akan menjadwalkan eksekusi tugas setiap hari Senin dan Jumat.
  • Tanda hubung atau hyphen (-). Gunakan operator ini untuk menentukan rentang value. Misalnya, kalau Anda ingin menyiapkan cron job mulai Juni hingga September, tuliskan 6-9 pada field Month.
  • Tanda garis miring atau separator (/). Gunakan operator ini untuk membagi value. Contohnya, kalau Anda ingin script dieksekusi setiap 12 jam, tuliskan */12 dalam field Hour.
  • Last (L). Operator ini bisa digunakan pada field Day of the month dan Day of the week. Jadi, menuliskan 3L pada field Day of the week berarti hari Rabu terakhir (last) dalam satu bulan.
  • Weekday (W). Gunakan operator ini untuk menentukan hari kerja terdekat dalam waktu tertentu. Misalnya, tanggal 1 pada suatu bulan jatuh di hari Sabtu. Menuliskan 1W pada field Day of the month akan menjalankan command pada hari kerja terdekat setelah hari Sabtu tanggal 1 tersebut, yaitu hari Senin minggu depan (tanggal 3).
  • Tanda pagar atau hash (#). Gunakan operator ini untuk menentukan hari dalam minggu tertentu, diikuti angka 1-5 yang mewakili minggu dalam sebulan. Sebagai contoh, menulis 1#2 merujuk pada hari Senin (1) kedua (2) dalam suatu bulan.
  • Tanda tanya (?). Gunakan operator ini untuk menginput “no specific value” (tidak ada value tertentu) pada field Day of the month dan Day of the week.

Special String untuk Cron Job

Special string atau string khusus cron job bisa membantu user menjadwalkan cron job pada interval waktu tertentu tanpa harus mencari tahu deretan logis angka yang perlu dimasukkan. Untuk menggunakan string ini, tuliskan tanda @ diikuti frasa-frasa tertentu.

Berikut adalah beberapa special string yang bisa Anda gunakan dalam command:

  • @hourly. Job dieksekusi satu kali setiap satu jam.
  • @daily atau @midnight. String ini akan menjalankan tugas setiap hari pada tengah malam.
  • @weekly. Gunakan untuk menjalankan job sebanyak satu kali setiap minggunya, pada hari Minggu tengah malam.
  • @monthly. Special string ini menjalankan perintah satu kali pada hari pertama dalam suatu bulan.
  • @yearly. Gunakan untuk menjalankan tugas satu kali dalam satu tahun, pada tanggal 1 Januari tengah malam.
  • @reboot. Dengan string ini, job hanya akan dieksekusi satu kali pada waktu mulai (start-up).

Penting! Selalu berhati-hati saat Anda menjadwalkan cron job yang berkaitan dengan zona waktu.

Contoh Syntax Cron

Setelah Anda mempelajari contoh cron syntax yang benar, sekarang kami akan membantu Anda memahaminya dengan lebih baik.

Selalu ingat bahwa output cron akan secara otomatis dikirimkan ke akun email lokal Anda. Kalau tidak ingin lagi menerima email, Anda bisa menambahkan >/dev/null 2>&1 pada command seperti contoh berikut:

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

Kalau Anda ingin mengirim output tersebut ke akun email tertentu, tambahkan MAILTO dan alamat email yang dimaksud. Berikut contohnya:

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

Nah, untuk memahami contoh cron syntax dengan lebih baik, simak contoh command berikut ini:

ContohPenjelasan0 0 * * 0 /root/backup.shMenjalankan backup setiap hari Minggu tengah malam.0 * * * 1 /root/clearcache.shMenghapus cache setiap jam pada hari Senin.0 6,18 * * * /root/backup.shBackup data dua kali dalam satu hari pada pukul 06.00 dan 18.00*/10 * * * * /scripts/monitor.shMelakukan monitoring setiap 10 menit.*/15 * * * * /root/backup.shMelakukan backup setiap 15 menit.* * 20 7 * /root/backup.shMelakukan backup setiap menit pada tanggal 20 Juli.0 22 * * 1-5 /root/clearcache.shMenghapus cache setiap hari kerja (Senin–Jumat) pada pukul 22.00.0 0 * * 2 * /root/backup.shMelakukan backup setiap Selasa tengah malam.* * * 1,2,5 * /scripts/monitor.shMelakukan monitoring setiap menit selama Januari, Februari, dan Mei.10-59/10 5 * * * /root/clearcache.shMenghapus cache setiap sepuluh menit pada pukul 05.00, dimulai pada 05.10.0 8 1 */3 * /home/user/script.shMengatur tugas agar dijalankan per kuartal, pada hari pertama bulan tersebut pukul 08.00.0 * * * * /root/backup.shMembuat backup setiap jam.* * * * * /scripts/script.sh; /scripts/scrit2.shMenyertakan beberapa tugas dalam satu cron job. Berguna untuk menjadwalkan beberapa tugas yang perlu dieksekusi bersamaan.@reboot /root/clearcache.shMenghapus cache setiap kali Anda menyalakan sistem.0 8 1-7 * 1 /scripts/script.shMenjalankan script pada hari Senin pertama setiap bulan, pukul 08.00.5 4 * * 0 /root/backup.shMembuat backup setiap hari Minggu pukul 04.05.15 9 1,20 * * /scripts/monitor.shMenjalankan monitoring pada pukul 09.15 di tanggal 1 dan 20 setiap bulan.@hourly /scripts/monitor.shMenjalankan monitoring setiap jam.0 0 1,15 * 3 /scripts/script.shMenjalankan script setiap Rabu tengah malam, antara tanggal 1 hingga 15 setiap bulan.15 14 1 * * /root/clearcache.shMenghapus cache di hari pertama dalam satu bulan, pada pukul 14.15.00 08-17 * * 1-5 bin/check-db-statusMengecek status database setiap hari dari Senin–Jumat, per jam dari pukul 08.00 hingga 17.00.15 6 1 1 * /root/backup.shMelakukan backup setiap tanggal 1 Januari pukul 06.15.0 0 * * * /scripts/monitor.shMengeksekusi script monitoring satu kali dalam sehari, tengah malam.0 0 15 * * /root/clearcache.shMenghapus cache pada tanggal 15 setiap bulan, tengah malam.* * * * 1,5 /scripts/monitor.shMelakukan monitoring setiap Senin dan Jumat.

Cron Permission

Anda bisa membuat atau mengedit file-file berikut ini untuk mengizinkan atau membatasi user agar tidak menggunakan file cron sistem:

  • /etc/cron.allow — apabila file cron.allow sudah ada, file ini memuat nama user yang diberi izin untuk menggunakan cron job.
  • /etc/cron.deny — apabila tidak ada file cron.allow tapi ada file cron.deny, user yang ingin menggunakan cron job tidak boleh dicantumkan dalam file cron.deny.

Miliki server virtual dan resource online Anda sendiri. Coba VPS Hosting

Kesimpulan

Menjadwalkan tugas secara otomatis tentu merupakan solusi yang benar-benar praktis agar Anda tidak melewatkan tugas yang penting.

Cron job adalah metode yang tepat bagi administrator sistem dan web developer agar bisa mengelola tugas repetitif. Cukup ketikkan command yang sesuai, lalu pilih waktu eksekusi yang benar.

Untuk menjadwalkan cron job, gunakan sintaksis yang tepat dalam command line. Atau, Anda bisa menggunakan string khusus agar lebih mudah. Ingat, berikan permission yang sesuai agar hanya user yang sah yang bisa mengakses file cron job.

Semoga artikel ini bisa membantu Anda memahami konsep dasar tentang apa itu crob job untuk menjadwalkan tugas, ya. Kalau masih memiliki pertanyaan atau saran, silakan tuliskan pada kolom komentar di bawah ini.

Cara menggunakan cronjob php ubuntu

Penulis

Faradilla A.

Faradilla, yang lebih akrab disapa Ninda, adalah Content Manager di Hostinger. Ia suka mengikuti tren seputar teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca menyelesaikan masalah yang dialami.