Dalam pembuatan aplikasi web, kadang ada bagian program yang harus berjalan rutin setiap periode tertentu. Contoh realnya misalkan script yang mengirimkan email produk terbaru ke customer setiap harinya. Contoh lainnya misalkan mengirimkan status resource server ke email admin, melakukan backup otomatis, menghapus transaksi penjualan yang tidak dibayar (seperti tiket pesawat atau kereta api) dan sejenisnya.
Cron adalah service di Cpanel webhosting yang fungsinya mengeksekusi script secara periodik. Periodik bisa permenit, per 5 menit, perjam, perhari dan seterusnya. Cron pada dasarnya adalah perintah command line di Linux dan UNIX. Mengingat Webhosting PHP menggunakan Linux dengan Kontrol Panel CPanel, maka pihak CPanel memudahkan kita dalam mengotomatisasi proses di webhosting dan menjalankan logic bisnis website tanpa campur tangan manusia.
Langsung saja, kasus berikut ini saya berikan contoh sederhana. Setiap 5 menit script akan memasukan data mahasiswa kedalam tabel mahasiswa. Yah, contohnya kurang realistis memang, namun yang saya targetkan anda paham dengan ide dan implementasi cron itu sendiri.
Contoh script PHP
define('db_host','localhost'); define('db_user','usernamedb'); define('db_pass','passworddb'); define('db_name','namadb'); mysql_connect(db_host,db_user,db_pass); mysql_select_db(db_name); $sql="insert into mahasiswa(nim,nama,ipk,jurusan,waktu) values('1234','candra','3.00','TI',now())"; mysql_query($sql) or die(mysql_error());
Langkah langkah
1. Buka CPanel dan klik icon Cron Job di bagian Advanced
lalu pilihlah periode script dijalankan setiap berapa ? Lihat screenshoot
Setelah menseting periodenya (dalam contoh script php akan di eksekusi setiap 5 menit ), perhatikan bagian Command
Command
/usr/bin/php -q /home/namauser/public_html/demo.php>/home/namauser/cronlog.txt
/usr/bin/php -q /home/namauser/public_html/demo.php>/home/namauser/cronlog.txt
note:
/user/bin/php adalah letak file biner PHP. ada kemungkinan lokasi PHP di server anda berbeda, jika tidak tahu lokasinya, silahkan hubungi pihak webhosting
-q merupakan parameter php yang artinya quite (tidak cerewet) artinya kalo ada error tidak akan kesimpan di log. parameter -q opsional
/home/namauser/public_html/demo.php
letak script yang akan di eksekusi. namauser adalah nama login cpnanel anda. Script disini tidak perlu harus php, sembarang script bisa dijalankan asal server mendukung. Contohnya adalah shellcript, Perl atau Python bisa di eksekusi oleh cron. Bahkan mysqldump untuk membackup database pun bisa dieksekusi disini
>/home/namauser/cronlog.txt
tanda lebih dari artinya output dari script (jika ada) simpan di file cronlog.txt . Log ini sangat bermanfaat jikalau ada error di script atau untuk memastikan script berjalan sebagaimana mestinya.
Terimakasih tutorialnya, saya akan menggunakan cronjob untuk menjalankan script php bot like timeline Instagram
bagus kang tutornya,,, ane bingung mengatur di cpanel supaya email yang dikirim script php bisa sampai pada tujuannya,,,,,dari website email terkirim ,, tapi tidak sampai ke alamat emailnya,,,ke kotak masuk/ spam sampai 2 bulan ga datang datang tuh email contoh,, di lihapt pada php mail log juga tercatat terkirim, kalau pakai command di atas bisa menyelesaikannya ga yaa??