{"id":233,"date":"2021-01-02T08:15:24","date_gmt":"2021-01-02T08:15:24","guid":{"rendered":"https:\/\/sentraldigitalindonesia.co.id\/blog\/?p=233"},"modified":"2021-01-02T08:15:28","modified_gmt":"2021-01-02T08:15:28","slug":"apa-itu-cron-job","status":"publish","type":"post","link":"https:\/\/sentraldigitalindonesia.co.id\/blog\/2021\/01\/02\/apa-itu-cron-job\/","title":{"rendered":"Apa itu Cron Job"},"content":{"rendered":"\n<p>Cron adalah tool di sistem operasi berbasis UNIX (<strong>Linux<\/strong>,&nbsp;<strong>Ubuntu<\/strong>, dan lain-lain) yang berfungsi untuk menjalankan task atau script secara otomatis.<\/p>\n\n\n\n<p>Oleh karena itu, cron job adalah sebutan penggunaan cron untuk menjadwalkan task di waktu yang sudah ditentukan secara berulang kali.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Perintah Dasar Cron Job<\/strong><\/h2>\n\n\n\n<p>Ada banyak cara untuk membuat dan mengedit cron job.&nbsp;<em>Nah<\/em>, di tutorial ini, kami menggunakan Linux Shell Prompt (Terminal).<\/p>\n\n\n\n<p>Bagi yang menggunakan VPS di Hostinger, info login bisa didapatkan di tab manajemen (kelola) VPS. Setelah itu, akses server melalui SSH.<\/p>\n\n\n\n<p>Berikut beberapa perintah dasar cron job:<\/p>\n\n\n\n<p>Untuk mengedit file crontab user, Anda harus mengetik perintah ini di terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -e<\/pre>\n\n\n\n<p>Hasilnya akan seperti ini.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.co.id\/tutorial\/wp-content\/uploads\/sites\/11\/2020\/06\/the-result-of-crontab-e-command-990x525-2.png\" alt=\"Hasil perintah crontab -e\" class=\"wp-image-11565\"\/><\/figure><\/div>\n\n\n\n<p>Karena yang digunakan adalah&nbsp;<strong>vi editor<\/strong>, mau tak mau Anda harus mempelajari&nbsp;<strong>perintah dasar vi<\/strong>&nbsp;terlebih dulu agar tidak salah langkah.<\/p>\n\n\n\n<p>Jika ingin mengedit crontab user lain, Anda hanya perlu mengetik&nbsp;<strong>crontab -u username -e<\/strong>. Tapi perintah ini hanya bisa dilakukan apabila role Anda adalah superuser, dan Anda wajib menambahkan&nbsp;<strong>sudo su<\/strong>&nbsp;sebelumnya.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.co.id\/tutorial\/wp-content\/uploads\/sites\/11\/2020\/06\/the-command-to-edit-another-users-crontab-e1584367899110-1.png\" alt=\"Perintah dasar cron job untuk mengedit file crontab user lain\" class=\"wp-image-11566\"\/><\/figure><\/div>\n\n\n\n<p>Untuk menghapus file crontab user, gunakan perintah ini:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -r<\/pre>\n\n\n\n<p>Fungsi -i sama dengan -r. Bedanya, perintah ini akan menampilkan opsi ya atau tidak (yes\/no) sebelum user memutuskan untuk menghapus crontab:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -i<\/pre>\n\n\n\n<p>Untuk menampilkan isi file crontab yang sedang diakses, jalankan perintah ini di terminal:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">crontab -l<\/pre>\n\n\n\n<p>Perintah&nbsp;<strong>crontab -l<\/strong>&nbsp;dipakai untuk mengecek ada tidaknya file crontab yang dibuat. Jika tidak ada, hasil yang ditampilkan seperti ini.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.co.id\/tutorial\/wp-content\/uploads\/sites\/11\/2020\/06\/a-command-to-see-if-there-is-any-crontab-file-created-e1584367819302.png\" alt=\"perintah untuk mengecek ketersediaan file crontab\" class=\"wp-image-11567\"\/><\/figure><\/div>\n\n\n\n<p>Untuk mengecek daftar file crontab user lain, role Anda sudah harus superuser agar bisa menggunakan perintah&nbsp;<strong>crontab -u username -l<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.co.id\/tutorial\/wp-content\/uploads\/sites\/11\/2020\/06\/a-command-to-see-the-crontab-file-lists-of-other-users-e1584367750130.png\" alt=\"Perintah untuk mengecek daftar file crontab user lain\" class=\"wp-image-11568\"\/><\/figure><\/div>\n\n\n\n<p>Selain perintah dasar, Anda juga wajib mempelajari syntax dasar cron job.<\/p>\n\n\n\n<p>Pada umumnya, file crontab terdiri atas dua bagian, yakni pengatur waktu atau jadwal (schedule timer) dan perintah (command). Berikut cara penulisan perintahnya:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* * * * * \/bin\/sh backup.sh<\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>***** \/bin\/sh backup.sh cronjob<\/strong>&nbsp;akan menjalankan backup setiap menit.<\/li><li><strong>30 18 * * * rm \/home\/sydtesting\/tmp\/*<\/strong>&nbsp;akan menghapus&nbsp;<strong>file tmp<\/strong>&nbsp;dari&nbsp;<strong>\/home\/sydtesting\/tmp<\/strong>&nbsp;tepat pada jam 18.30 setiap harinya.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Cara Penulisan Cron Syntax yang Benar<\/strong><\/h2>\n\n\n\n<p>File crontab memiliki lima&nbsp;<em>field<\/em>&nbsp;yang disimbolkan dengan tanda bintang. Masing-masing menunjukkan pengaturan tanggal dan waktu untuk menjalankan sebuah task secara berulang.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.hostinger.co.id\/tutorial\/wp-content\/uploads\/sites\/11\/2020\/06\/a-crontab-file-consist-of-five-fields-990x142-2.png\" alt=\"File crontab memiliki lima field\" class=\"wp-image-11572\"\/><\/figure><\/div>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Menit (Minute)<\/strong>&nbsp;\u2013 menunjukkan di menit ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 59.<\/li><li><strong>Jam (Hour)<\/strong>&nbsp;\u2013 menunjukkan di jam ke berapa perintah akan dijalankan. Angkanya berkisar dari 0 sampai 23.<\/li><li><strong>Hari di bulan tertentu (Day of the month)<\/strong>&nbsp;\u2013 menunjukkan di hari apa perintah akan dijalankan. Tanggalnya dimulai dari tanggal 1 sampai 31.<\/li><li><strong>Bulan (Month)<\/strong>&nbsp;\u2013 menunjukkan di bulan apa perintah akan dijalankan, dimulai dari bulan 1 hingga 12.<\/li><li><strong>Hari di minggu tertentu (Day of the week)<\/strong>&nbsp;\u2013 menunjukkan di hari apa perintah akan dijalankan, dimulai dari hari 0 sampai 7.<\/li><\/ul>\n\n\n\n<p>Anda juga harus menggunakan karakter yang tepat di setiap file crontab:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Tanda bintang (*)<\/strong>&nbsp;\u2013 untuk mengatur semua parameter jadwal atau waktu.<\/li><li><strong>Koma (,)<\/strong>&nbsp;\u2013 untuk menjalankan satu perintah di dua atau lebih dari dua waktu yang berbeda.<\/li><li><strong>Tanda penghubung (-)<\/strong>&nbsp;\u2013 satu perintah bisa dijalankan dalam beberapa kali waktu atau hari. Tanda ini digunakan untuk menentukan rentang waktunya.<\/li><li><strong>Garis miring (\/)<\/strong>&nbsp;\u2013 untuk membuat interval dalam rentang waktu tertentu.<\/li><li><strong>Last (L)<\/strong>&nbsp;\u2013 mereferensikan hari di minggu terakhir pada suatu bulan. Misalnya, di bulan tersebut hari terakhirnya adalah hari Rabu. Maka&nbsp;<strong>3L<\/strong>&nbsp;berarti hari Rabu terakhir.<\/li><li><strong>Weekday (W)<\/strong>&nbsp;\u2013 untuk menentukan hari kerja di waktu tertentu. Misalnya, Anda menjadwalkan satu minggu (1W). Apabila hari pertama (<strong>1st<\/strong>) \u2013 yang juga adalah akhir pekan \u2013 adalah Sabtu, perintah baru akan dijalankan di hari ketiga (hari kerja), yakni Senin (<strong>3rd<\/strong>).<\/li><li><strong>Tanda pagar (#)<\/strong>&nbsp;\u2013 untuk menentukan hari di minggu tertentu. Biasanya hadir di kisaran 1 sampai 5. Misalnya,&nbsp;<strong>1#2<\/strong>&nbsp;berarti Senin kedua (hari pertama di minggu kedua).<\/li><li><strong>Tanda tanya (?)<\/strong>&nbsp;\u2013 membiarkan field kosong.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>12 Contoh Syntax Cron<\/strong><\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Perlu diingat, output yang dihasilkan perintah ini akan otomatis dikirimkan ke akun email Anda. Jika merasa terganggu dengan banyaknya kiriman email, tambahkan&nbsp;<strong>&gt;dev\/null\/ 2&gt;&amp;1<\/strong>&nbsp;ke syntax. Kiriman ke email akan dinonaktifkan. Berikut contohnya:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">0 5 * * * \/root\/backup.sh &gt;\/dev\/null 2&gt;&amp;1<\/pre>\n\n\n\n<p>Tapi kalau Anda ingin mengalihkan kiriman output ke akun lain yang lebih spesifik, tambahkan&nbsp;<strong>MAILTO<\/strong>&nbsp;yang lalu diikuti dengan alamat email. Ini contohnya:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MAILTO=\"myname@hostinger.com\"\n0 3 * * * \/root\/backup.sh &gt;\/dev\/null 2&gt;&amp;1<\/pre>\n\n\n\n<p>Daftar contoh syntax lainnya:<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td><strong>Syntax<\/strong><\/td><td><strong>Arti<\/strong><\/td><\/tr><tr><td>0 0 * * * \/bin\/sh backup.sh<\/td><td>Untuk menjalankan database pada tengah malam dan juga untuk menjalankan database sekali sehari.<\/td><\/tr><tr><td>0 6,18 * * * \/bin\/sh backup.sh<\/td><td>Untuk menjalankan backup database dua kali sehari, yakni pada jam 6 pagi dan 6 sore.<\/td><\/tr><tr><td>0 *\/6 * * * \/scripts\/monitor.sh<\/td><td>Untuk melakukan pemantauan atau monitor setiap enam jam.<\/td><\/tr><tr><td>*\/10 * * * * \/home\/user\/script.sh<\/td><td>Untuk menjalankan cron job file script yang ada di direktori home setiap 10 menit.<\/td><\/tr><tr><td>0 * 20 7 * \/bin\/sh backup.sh<\/td><td>Untuk menjalankan backup database setiap jam hanya pada tanggal 20 Juli.<\/td><\/tr><tr><td>0 0 * * 2 * \/bin\/sh<\/td><td>Untuk menjalankan backup database pada tengah malam setiap hari Selasa.<\/td><\/tr><tr><td>* * * 1,2,5 *&nbsp; \/script\/script.sh<\/td><td>Untuk menjalankan perintah di bulan Januari, Februari, dan Mei.<\/td><\/tr><tr><td>10-59\/5 5 * * * \/home\/user\/script.sh<\/td><td>Untuk menjalankan perintah setiap 5 menit di jam 5 pagi. Waktunya dimulai dari jam 5.10.<\/td><\/tr><tr><td>0 8 1 *\/3 * \/home\/user\/script.sh<\/td><td>Untuk menjalankan perintah setiap tiga bulan di hari pertama pada jam 8 pagi.<\/td><\/tr><tr><td>* * * * * \/scripts\/script.sh; \/scripts\/scrit2.sh<\/td><td>Untuk menjadwalkan berbagai&nbsp;<em>job<\/em>&nbsp;di satu cron job.<\/td><\/tr><tr><td>@reboot \/scripts\/script.sh<\/td><td>Untuk menjalankan task tertentu setiap kali sistem diaktifkan.<\/td><\/tr><tr><td>0 0 1 * *&nbsp; \/home\/user\/script.sh<\/td><td>Untuk menjalankan perintah di hari pertama setiap bulan.<\/td><\/tr><\/tbody><\/table>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Hak Akses Cron<\/strong><\/h2>\n\n\n\n<p>Cron job memiliki dua file penting.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>\/etc\/cron.allow<\/strong>&nbsp;\u2013 jika ada cron.allow, nama user harus tercantum agar dia bisa menggunakan cron job.<\/li><li><strong>\/etc\/cron.deny<\/strong>&nbsp;\u2013 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.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Cron adalah tool di sistem operasi berbasis UNIX (Linux,&nbsp;Ubuntu, dan lain-lain) yang berfungsi untuk menjalankan task atau script secara otomatis. Oleh karena itu, cron job adalah sebutan penggunaan cron untuk &hellip; <\/p>\n","protected":false},"author":1,"featured_media":234,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[71],"class_list":["post-233","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknologi","tag-cron-job"],"_links":{"self":[{"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/posts\/233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/comments?post=233"}],"version-history":[{"count":1,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":235,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/posts\/233\/revisions\/235"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/media\/234"}],"wp:attachment":[{"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sentraldigitalindonesia.co.id\/blog\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}