Mengelola server website tentu saja bukanlah pekerjaan mudah. Jika Anda repot mengelola berbagai hal teknis secara manual, maka cron job adalah solusinya.
Cron job adalah fitur di Linux OS yang bisa membantu Anda melakukan otomatisasi perintah di server website secara mudah. Ingin tahu Linux cron job otomatis lebih jauh?
Tenang! Di artikel ini, kami ajak Anda belajar apa itu cron job, perintah dasarnya, hingga cara menggunakan crontab.
Tanpa basa-basi lagi, ini dia artikel selengkapnya!
Apa Itu Cron Job?
Cron adalah fitur di sistem operasi berbasis UNIX (Linux, Ubuntu, dan lain-lain) yang berfungsi untuk menjalankan tugas atau script secara otomatis.
Pada dasarnya, cron adalah sebuah file teks sederhana berisi command atau perintah Linux yang dibuat oleh administrator sistem.
Oleh karena itu, Linux cron job adalah sebutan penggunaan cron untuk menjadwalkan tugas atau task di waktu yang sudah ditentukan secara berulang kali.
Fitur cron job banyak digunakan baik oleh administrator sistem maupun web developer untuk berbagai keperluan, misalnya:
- Melakukan cara backup VPS otomatis secara terjadwal setiap harinya.
- Membersihkan cache dan file-file sampah lainnya di ruang disk setiap minggu.
- Cek broken link di website secara berkala.
- Mengirim pesan newsletter bulanan ke semua subscriber website.
Wah canggih sekali ya tugas cron job ini. Namun tentu saja, ia masih memiliki sedikit kekurangan, seperti:
- Interval tersingkat sebuah Linux cron job adalah 60 detik, tidak bisa kurang dari itu.
- Cron job hanya terpusat di satu server. Ia tidak bisa didistribusikan ke server website lain meski berada di jaringan yang sama.
- Cron job dirancang untuk tugas terjadwal. Jika server error pada waktu yang ditentukan, maka ia harus menunggu hingga cron berikutnya untuk mengeksekusi perintah.
Pun demikian, memanfaatkan Linux cron job memang terbukti bisa memudahkan tugas user mengurus server website.
Lalu, sebenarnya bagaimana cara menggunakan crontab? Mari mulai mempelajari pengoperasian dasar cron job di bagian selanjutnya.
Baca juga: Cronjob Laravel
Perintah Dasar Cron Job
Sebelum praktik cara menggunakan crontab, pastikan Anda memiliki sebuah server VPS hosting. Jika belum punya, Anda bisa berlangganan di penyedia layanan terpercaya, seperti VPS Niagahoster.
Setelah itu, Anda akan diminta mengetikkan perintah tertentu. Anda dapat menggunakan perintah crontab untuk melihat, menambah, mengedit, atau menghapus tugas cron dengan opsi di bawah:
crontab
Perintah crontab untuk membuat file konfigurasi crontab baru. Sebab, setiap Linux cron job diwakili oleh sebuah file crontab.
crontab -e
Perintah crontab -e digunakan untuk mengedit file crontab. Jika belum ada file cron apapun, perintah crontab -e otomatis membuat crontab baru.
crontab -u
Perintah crontab -u berfungsi untuk mengedit file crontab. Namun, kali ini direktori crontab yang diedit adalah milik user lain di server website Anda.
Oleh karena itu, crontab -u harus diikuti oleh username yang file crontab-nya ingin Anda ubah. Misalnya: crontab -u username -e
Berhubung ini adalah task atau tugas yang hanya dapat dilakukan administrator sistem, jangan lupa ketikkan command sudo su sebelum crontab -u.
crontab -l
Perintah crontab -l ini digunakan untuk membuka daftar file crontab dan menampilkan isinya.
crontab -r
Perintah crontab -r ini untuk menghapus file crontab.
crontab -i
Perintah crontab -i sama dengan crontab -r, tapi command ini menampilkan pertanyaan ya/tidak sebelum file dihapus.
Baca Juga: Perintah Dasar Linux
Syntax File Crontab
Setiap file crontab terdiri dari dua komponen, yaitu waktu dan perintah. Format waktunya memiliki lima field yang semuanya harus Anda isi:
- Minute — Field menit eksekusi perintah, ditulis dengan angka 0 hingga 59.
- Hour — Field jam eksekusi command, ditulis dengan angka 0 hingga 23.
- Day — Field tanggal eksekusi perintah, ditulis dengan angka 1 hingga 31.
- Month — Field bulan eksekusi command, ditulis dengan angka 1 hingga 12.
- Weekday — Field hari eksekusi perintah. Hari dimulai dengan Minggu yang diwakili dengan angka 0.
Sebagai contoh, Anda ingin menjadwalkan cron job root/backup.sh setiap hari Senin jam 4.30 pagi, maka script perintah cron adalah:
30 4 * * 1 root/backup.sh
Nah, angka 30 dan 4 mewakili pukul 4.30 dan 1 mewakili hari Senin. Sedangkan dua tanda bintang (* *) menunjukkan perintah crontab dieksekusi berdasarkan value di sisi kirinya.
Selain angka, beberapa simbol yang digunakan dalam penggunaan cron job adalah:
- Asterisk atau tanda bintang (*) — mewakili semua value sebuah field. Contohnya, tanda bintang di field minute berarti command dalam crontab tersebut dijalankan setiap menit.
- Koma (,) — digunakan untuk memasukkan dua atau lebih value dalam satu field. Misalnya, user ingin menjalankan suatu perintah pukul 7 pagi dan malam setiap hari.
- Hyphen (-) — digunakan jika Anda ingin menentukan rentang waktu dalam suatu field. Contohnya, apabila user ingin menjalankan command dari hari Senin hingga Rabu setiap minggu.
- Slash atau garis miring (/) — fungsinya mirip dengan koma. Namun, garis miring digunakan untuk menentukan pengaturan waktu yang lebih kompleks. Misalnya, ketika user ingin mengotomatisasi perintah setiap 10 menit pada dari jam 11.20 hingga jam 11.50.
- Last (L) — Last (L) mengisyaratkan hari tertentu di minggu terakhir suatu bulan. Contohnya, 5L berarti hari Jumat terakhir.
- Hash atau tanda pagar (#) — tanda ini digunakan ketika Anda ingin menentukan minggu pelaksanaan command. Dalam penggunaannya, tanda ini diikuti angka 1 hingga 5 sebagai indikator minggunya. Misalnya, 3#5 berarti hari Rabu di minggu ke-lima.
- Weekday (W) – gunakan tanda ini untuk mengeksekusi perintah di hari kerja terdekat. Misalnya tanggal 1 Januari jatuh di hari Minggu, maka cron job akan dijalankan pada Senin tanggal 2 Januari.
- Tanda tanya (?) – operator ini dipakai jika tidak ada value tertentu pada field Day of the month dan Day of the week.
Bagaimana, Anda sudah paham cara menggunakan crontab? Jika masih bingung, di luar sana ada beberapa tools gratisan untuk memudahkan Anda merangkai perintah cron job.
Salah satunya yaitu cron guru yang bisa Anda akses di laman resminya.
Baca Juga: Curl Command
String Khusus Cron Job
Selain sederet script atau syntax file crontab pada poin sebelumnya, Anda juga bisa menambahkan beberapa string khusus pada perintah cron job.
Untuk menggunakannya, tuliskan @ lalu diikuti pilihan string seperti contoh cron job di bawah:
- @hourly – Cron job dijalankan setiap satu jam sekali.
- @daily atau @midnight – Cron jobs dijalankan setiap hari pada jam 12 tengah malam.
- @weekly – Command untuk menjadwalkan cron job seminggu sekali, pada hari Minggu tengah malam.
- @monthly – Cron jobs akan dieksekusi satu kali dalam sebulan di tanggal 1.
- @yearly – String khusus untuk menjalankan cron job command setahun sekali pada tanggal 1 Januari tengah malam.
- @reboot – Menjadwalkan perintah cron setiap server VPS hosting restart. Sangat berguna jika Anda pernah mempraktikkan cara membuat VPS reboot otomatis.
Nah, itu tadi sederet command line khusus untuk cron job. Selanjutnya, yuk perhatikan contoh-contoh penulisan syntax cron job agar Anda semakin paham.
Contoh Syntax Cron Job
Anda sudah mengenali komponen dan string khusus dalam syntax cron job, bukan? Sekarang mari lihat contoh-contoh cron job adalah sebagai berikut:
Perintah | Arti |
0 7 * * * /root/backup.sh | Melakukan backup setiap pukul 7 pagi setiap hari. |
20-50/10 11 * * * /home/user/script.sh | Menjalankan script sepuluh menit sekali dari jam 11.20 hingga 11.50 setiap hari. |
* * * 1,2,5 * /bin/script.sh | Menjalankan script setiap hari di bulan Januari, Februari, dan Mei. |
0 6,18 * * * /bin/backup.sh | Melakukan backup setiap hari pada pukul 6 pagi dan 6 malam. |
0 8 1 */3 * /home/user/script.sh | Menjalankan script di tanggal pertama setiap tiga bulan pada pukul 8 pagi. |
* * 5L * * /root/script.sh | Menjalankan script setiap hari Jumat terakhir setiap bulannya. |
* * 3#5 7 * /root/backup.sh | Melakukan backup setiap hari rabu di minggu ke lima setiap bulan Juli. |
0 * * * 3 /root/clearcache.sh | Menghapus cache setiap jam pada hari Rabu. |
*/30 * * * * /scripts/monitor.sh | Melakukan monitoring sistem setiap 30 menit sekali. |
*/45 * * * * /root/backup.sh | Melakukan backup setiap 45 menit sekali. |
0 18 * * 1-3 /root/clearcache.sh | Menghapus cache setiap hari Senin hingga Rabu pada pukul 6 malam. |
* * 22 9 * /root/backup.sh | Melakukan backup setiap menit pada tanggal 22 September. |
* * * 4,6,8 * /scripts/monitor.sh | Melakukan monitoring sistem setiap menit selama bulan April, Juni, dan Agustus. |
0 0 * * 5 * /root/backup.sh | Melakukan backup setiap hari Jumat tengah malam. |
10-59/10 5 * * * /root/clearcache.sh | Membersihkan cache setiap 10 menit pada jam 5 pagi, dimulai tepat pukul 5.10. |
0 9 15 */3 * /home/user/script.sh | Mengatur task atau tugas cron agar dijalankan setiap tiga bulan sekali, pada tanggal 15 pukul 9 bulan tersebut. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh | Menyertakan beberapa daftar tugas terjadwal dalam satu cron job, sehingga bisa dijalankan terjadwal secara bersamaan. |
@reboot /root/clearcache.sh | Menghapus cache setiap kali sistem melakukan restart. |
@hourly /scripts/monitor.sh | Melakukan task monitoring sistem default setiap jam. |
Baca juga: Cara Backup dan Restore Database dengan SQL Dump
Jadi, Cron Job Adalah…
Cron job adalah tools CLI untuk menjalankan perintah di server website secara otomatis. Di artikel ini, Anda telah belajar pengertian Linux cron job, cara menggunakan crontab, hingga contoh cron secara lengkap.
Pun demikian, penggunaan cron adalah satu dari sekian banyak faktor yang memudahkan Anda sebagai web developer untuk mengelola server VPS hosting. Perlu diingat, pengelolaan server juga bergantung pada penyedia layanan yang dipilih.
Untungnya, Niagahoster menyediakan layanan Cloud VPS Hosting yang dibekali berbagai kelebihan. Sebut saja, kemudahan mengakses server dengan full access root, atau ketersediaan 50+ sistem operasi Linux siap install.
Menariknya, Cloud VPS Hosting Niagahoster dibanderol dengan harga terjangkau. Mulai Rp104 ribu/bulan saja, loh! Jadi tunggu apa lagi, yuk cobain sekarang juga!