Cron adalah layanan penjadwalan pekerjaan berbasis waktu yang ditemukan di sistem operasi mirip Unix. Pengguna menjadwalkan pekerjaan (perintah atau skrip) untuk dijalankan secara berkala pada waktu, tanggal, atau interval yang tetap.
Asal Usul dan Sejarah Awal Cron
Implementasi pertama cron dimulai pada Versi 7 Unix. Istilah “cron” berasal dari kata Yunani yang berarti waktu, “chronos”. Versi Unix ini, dirilis pada tahun 1979, memiliki program cron sederhana yang menjalankan tugas pada interval tertentu. Fungsionalitas Cron kemudian diperluas oleh Paul Vixie pada tahun 1987. Versi ini, yang dikenal sebagai Vixie Cron, adalah versi yang paling umum diinstal saat ini, dan merupakan versi yang umumnya disebut ketika orang menyebut “Cron”.
Memperluas Konsep Cron
Cron memungkinkan pengguna untuk mengotomatiskan pemeliharaan atau administrasi sistem—walaupun sifatnya yang bertujuan umum membuatnya berguna untuk hal-hal seperti mengunduh file dari Internet dan mengunduh email secara berkala. Lingkungan cron seperti kotak pasir di mana pekerjaan cron dijalankan di luar lingkungan shell biasa.
Setiap pengguna dapat memiliki crontabnya sendiri, dan meskipun ini adalah file di /var/spool/, file tersebut tidak dimaksudkan untuk diedit secara langsung. Sintaks ekspresi cron dapat dipecah menjadi dua jenis sintaks utama: Sintaks cron Unix, dan sintaksis yang lebih kompleks yang dikenal sebagai sintaksis ekspresi cron atau sintaksis cron kuarsa.
Struktur Internal Cron dan Cara Kerjanya
Cron beroperasi berdasarkan file konfigurasi sederhana namun kuat yang dikenal sebagai file “crontab”. File ini berisi satu baris untuk setiap tugas yang akan dijalankan, terdiri dari lima kolom waktu dan tanggal, diikuti dengan perintah untuk dijalankan pada waktu tertentu.
Kelima bidang tersebut mewakili:
- Menit demi jam (0 – 59)
- Jam dalam sehari (0 – 23)
- Hari dalam sebulan (1 – 31)
- Bulan dalam setahun (1 – 12)
- Hari dalam seminggu (0 – 7, dimana 0 dan 7 adalah hari Minggu)
Bidang perintah berisi tugas yang akan dijalankan pada waktu yang ditentukan di lima bidang pertama.
Fitur Utama Cron
Fitur utama Cron meliputi:
- Ini memungkinkan tugas berjalan secara otomatis di latar belakang secara berkala.
- Ini menyediakan platform yang fleksibel untuk menjadwalkan tugas (skrip atau perintah) dengan berbagai unit waktu.
- Setiap pengguna dapat memiliki file crontabnya sendiri.
- Pekerjaan Cron dapat dijadwalkan untuk dijalankan berdasarkan menit, jam, hari dalam seminggu, hari dalam sebulan, dan bulan dalam setahun.
- Cron menyediakan cara sederhana dan efektif untuk mengotomatisasi berbagai tugas sistem.
Jenis Kron
Pekerjaan Cron secara umum dapat dikategorikan sebagai berikut:
Jenis | Keterangan |
---|---|
Menyalakan ulang | Berjalan sekali saat startup. |
anakron | Berjalan pada interval yang ditentukan dalam hari. |
Sistem Cron | Disimpan di /etc/crontab dan di direktori /etc/cron.d/, ini dimaksudkan untuk seluruh sistem. |
Pengguna Cron | Setiap pengguna dapat memilikinya sendiri, dan disimpan di /var/spool/cron/crontabs/. |
Penggunaan Cron, Masalah, dan Solusinya
Cron berguna untuk mengotomatisasi tugas, namun dapat menimbulkan masalah jika tidak digunakan dengan hati-hati. Misalnya, tugas cron yang salah dikonfigurasi dapat menyebabkan penggunaan CPU yang tinggi. Selain itu, cron hanya mengirimkan output tugasnya melalui email, jika ada, kepada pengguna yang menjalankan tugasnya. Hal ini dapat menyebabkan kesalahan yang terlewat jika tidak diperiksa secara berkala.
Solusi umum untuk masalah ini meliputi:
- Memeriksa penggunaan CPU yang tinggi secara teratur dan mengkonfigurasi ulang atau menghentikan pekerjaan yang tidak diperlukan.
- Pastikan semua perintah dan skrip berjalan dengan benar sebelum menetapkannya sebagai pekerjaan cron.
- Mengarahkan output ke file log atau menyiapkan server email untuk memantau pekerjaan cron dengan lebih efektif.
Perbandingan dengan Alat Serupa
Ada penjadwal tugas lain yang mirip dengan cron, seperti pengatur waktu anacron dan systemd. Perbedaan utama antara keduanya dapat diringkas sebagai:
Alat | Keterangan |
---|---|
Kron | Cocok untuk tugas yang dijalankan pada waktu tertentu dalam sehari. Tidak menjalankan pekerjaan yang terlewat. |
anakron | Cocok untuk tugas yang dijalankan sekali sehari/mingguan/bulanan. Akan menjalankan pekerjaan yang terlewat saat mesin kembali online. |
Sistemd | Cocok untuk skenario yang lebih kompleks karena menawarkan lebih banyak opsi dan terintegrasi dengan baik dengan distribusi Linux modern. |
Perspektif Masa Depan dan Teknologi Terkait
Seiring dengan terus berkembangnya sistem berbasis Unix, Cron juga mengalami hal yang sama. Meskipun munculnya penjadwal tugas yang lebih canggih seperti systemd, kesederhanaan dan kekuatan Cron memastikan bahwa Cron tetap digunakan secara umum hingga saat ini.
Tren terkini menuju aplikasi kemas dan arsitektur layanan mikro juga membawa cara baru untuk menggunakan Cron. Misalnya, Kubernetes, platform orkestrasi container yang populer, memiliki fitur yang dikenal sebagai CronJobs yang mirip dengan Cron di sistem berbasis Unix.
Server Proxy dan Cron
Server proxy dapat digunakan secara efektif jika dikombinasikan dengan Cron untuk mengotomatiskan tugas-tugas tertentu. Misalnya, jika Anda memiliki skrip yang perlu mengakses situs web atau API secara rutin melalui server proxy, Anda dapat menyiapkan tugas cron untuk menjalankan skrip tersebut pada interval tertentu.
Cron juga dapat digunakan untuk merotasi proxy pada interval tertentu, mengurangi kemungkinan satu proxy diblokir. Misalnya, layanan proxy OneProxy dapat diotomatisasi dengan Cron untuk tugas-tugas seperti pengambilan data, mengotomatiskan tugas media sosial, dan banyak lagi.
tautan yang berhubungan
Untuk informasi selengkapnya tentang Cron, pertimbangkan sumber daya berikut: