Dengan begitu banyaknya tugas rutin pada sistem yang harus dikerjakan setiap hari, sulit untuk mengingat semua hal yang harus dilakukan tepat waktu.
Beberapa skenario dalam menjalankan tugas-tugas rutin pada sistem meliputi:
Salah satu alat yang dapat digunakan untuk itu adalah Cron, yang memungkinkan pengguna untuk menjadwalkan dan menjalankan tugas secara otomatis berdasarkan waktu atau interval tertentu.
Pada bahasan di bawah, kamu akan mengetahui lebih lanjut tentang pengertian, fungsi, dan cara penggunaan Cron, serta beberapa shortcut dari cron-expression yang disebut “Special Syntax” yang dapat mempercepat proses penulisan jadwal tugas dan membuatnya lebih mudah dipahami.
Cron merupakan sebuah tool yang populer dan efektif dalam menjadwalkan tugas atau skrip secara otomatis pada sistem operasi Unix-Like seperti Linux dan MacOS. Nama “Cron” berasal dari bahasa Yunani “Chron” yang berarti “waktu”. Alat ini bekerja dengan menggunakan command-line dan dapat menjalankan tugas atau skrip secara terjadwal pada interval waktu tertentu seperti jam, hari, minggu, bulan, dan sebagainya.
Cron diaktifkan melalui file Crontab (Cron Table). di mana merupakan file teks sederhana dan mudah dibaca yang berisi kumpulan perintah shell yang akan dijalankan secara terjadwal sesuai jadwal yang telah ditentukan. Kumpulan perintah shell tersebut dikenal sebagai Cronjob, dan masing-masing user profile pada sistem dapat memiliki Crontab mereka sendiri, untuk menjadwalkan tugas-tugas tertentu.
Dengan mengautomatisasi tugas menggunakan Cron, beberapa keuntungan yang bisa diperoleh di antaranya:
Sebelum mengatur pada Crontab, pastikan bahwa shell script atau command yang akan dieksekusi berjalan dengan normal.
↳ Untuk memastikan, coba jalankan command tersebut secara biasa. (langsung pada terminal).
# crontab -e
↳ Jika sudah dipastikan aman, sekarang akses file Crontab dengan menjalankan perintah crontab -e
↳ Apabila Anda baru saja membuka file crontab pada user profile ini, maka akan ditampilkan opsi text editor yang kita bisa pilih, kita akan gunakan nano editor karena relatif lebih mudah untuk digunakan.
↳ Setelahnya, Anda akan dibawa ke file Crontab baru yang berisi beberapa instruksi tentang bagaimana dalam menggunakannya.
Setiap baris dalam Crontab mewakili sebuah Cronjob yang terdiri dari dua komponen, yaitu waktu/jadwal dan shell script atau perintah yang akan dieksekusi pada jadwal tersebut. Struktur ini dapat kita lihat pada poin di bawah.
Selain itu, ada beberapa Special Character dan Special Syntax dalam cron-expression yang bisa kita pakai untuk merubah jadwal secara lebih spesifik. Special Syntax sendiri sebenarnya adalah shortcut dari rentetan waktu numerik yang sudah ada di Crontab.
Atau untuk lebih mudahnya kita cek tabel di bawah:
Special Character | Kegunaan |
---|---|
* | Wildcard variabel yang merepresentasikan ekspresi “all”. Jadi akan menjalankan semua allowed values yang ada pada satuan waktu tersebut. Jika day of the month, maka menjalankan semua values (1 - 31) , month (1 - 12) dan sebagainya. |
, | Mengubah nilai menjadi sebuah daftar. Dengan cara ini, kita bisa menjalankan tugas hanya pada jam-jam tertentu yang kita masukkan pada daftar tersebut saja. |
– | Merepresentasikan range of value. Jadi apabila kita ingin menjalankan task pada range tertentu yang sudah ditentukan, kita bisa gunakan tanda hubung ini |
/ | Merepresentasikan incremental. Misalnya jika kita ingin menjadwalkan task untuk dijalankan setiap 30 menit, kita bisa menggunakan format: */30 * * * * command . |
Special Syntax | Kegunaan |
---|---|
@hourly | Shortcut cron yang digunakan untuk menjalankan job setiap jam pada menit ke-0 (misalnya, 1:00, 2:00, 3:00). ( 0 * * * * ) |
@daily | Shortcut cron yang akan menjalankan job setiap hari pada pukul 00:00 ( 0 0 * * * ) |
@weekly | Shortcut cron yang akan menjalankan job setiap minggu pada hari Minggu pada pukul 00:00 ) |
@monthly | Shortcut cron yang akan menjalankan job setiap bulan pada tanggal 1 pada pukul 00:00. ( 0 0 1 * * ) |
@yearly | Shortcut cron yang menjalankan job setiap tahun pada tanggal 1 Januari pada pukul 00:00. ( 0 0 1 1 * ) |
Jika Anda ingin menentukan apakah Cronjob Anda valid, Cronitor menawarkan editor cron-expression yang praktis bernama “Crontab Guru” yang dapat Anda gunakan untuk mempelajari dan memvisualisasikan cron-expression lebih cepat sesuai kebutuhan Anda, terutama jika Anda baru menggunakan cron-job atau perlu membuat jadwal yang kompleks.
Anda dapat mengunjungi situs web Crontab Guru di https://crontab.guru/ dan memasukkan cron-expression Anda di kotak input. Crontab Guru akan menampilkan deskripsi dalam bahasa Inggris yang sederhana, serta representasi grafis dari jadwal kerja cron Anda.
Jadi yg pertama, kita akan menjadwalkan sebuah perintah rsync untuk membuat backup aset website dari folder utama ke folder backup setiap hari pada pukul 1:30 malam. Untuk itu, kita bisa menggunakan cron-expression berikut:
30 1 * * * rsync -a /var/www/cloudforindonesia/galerifashion/ /etc/backup-website/cloudforindonesia/galerifashion/
Waktu 01:30 dapat direpresentasikan dengan angka 30 dan 1.
Sementara itu, tiga tanda bintang setelahnya yang mewakili “semua” akan mengeksekusi setiap nilai yang diizinkan dalam periode waktu tersebut. Atau dalam bahasa singkatnya akan mengeksekusi setiap hari.
Alternatif lainnya, kita juga dapat menjalankan serangkaian perintah yang telah kita tulis di dalam file .sh.
Jadi saya memiliki file backup-website.sh, di dalamnya berisi beberapa perintah simpel seperti backup website, backup database MariaDB, restart layanan NGINX dan layanan MariaDB. Dan saya juga ingin jadwalkan tugas ini setiap hari jam 1:30 pagi.
Kemudian untuk jadwalkan tugasnya, kita bisa menggunakan cron-expression berikut ini:
30 1 * * * sh /etc/backup-website/backup-website.sh
Gampang kan? jadi kalau kita ingin jalankan tugas dan ingin dijadwalkan, hanya perlu setup cronjob dan set jadwal waktunya.
crontab -l
“.crontab -r
” (tanpa konfirmasi) atau “crontab -ri
” (dengan konfirmasi).Overall, Cron merupakan tool yang sangat berguna untuk handle tugas-tugas yang berulang di Unix-based system. Dengan otomatisasi tugas-tugas ini, Anda jadi bisa lebih hemat waktu, mengurangi kesalahan, dan lebih produktif. Akhirnya, bisa mendapatkan hasil yang lebih baik dan hemat biaya juga.
Menjalankan skrip di system Anda memang keren, tetapi menjalankannya secara otomatis jauh lebih keren!
Kunjungi knowledge base Cloud Raya untuk mendapatkan lebih banyak tutorial artikel lainnya. Atau, Anda juga bisa mengunjungi channel Youtube kami untuk video stream tutorial yang Anda butuhkan.