Cron ialah perkhidmatan penjadualan kerja berasaskan masa yang terdapat dalam sistem pengendalian seperti Unix. Pengguna menjadualkan kerja (arahan atau skrip) untuk dijalankan secara berkala pada masa, tarikh atau selang masa yang tetap.
Asal-usul dan Sejarah Awal Cron
Pelaksanaan pertama cron bermula sejak Versi 7 Unix. Istilah "cron" berasal dari perkataan Yunani untuk masa, "chronos". Versi Unix ini, dikeluarkan pada tahun 1979, mempunyai program cron mudah yang melaksanakan tugas pada selang waktu tertentu. Fungsi Cron kemudiannya dikembangkan oleh Paul Vixie pada tahun 1987. Versi ini, yang dikenali sebagai Vixie Cron, ialah versi yang paling biasa dipasang hari ini, dan merupakan versi yang biasanya dirujuk apabila orang menyebut "Cron".
Memperluaskan Konsep Cron
Cron membenarkan pengguna untuk mengautomasikan penyelenggaraan atau pentadbiran sistem—walaupun sifat tujuan amnya menjadikannya berguna untuk perkara seperti memuat turun fail daripada Internet dan memuat turun e-mel pada selang masa yang tetap. Persekitaran cron adalah seperti kotak pasir di mana kerja cron kehabisan persekitaran shell biasa.
Setiap pengguna boleh mempunyai crontab mereka sendiri, dan walaupun ini adalah fail dalam /var/spool/, ia tidak bertujuan untuk diedit secara langsung. Sintaks ungkapan cron boleh dipecahkan kepada dua jenis sintaks utama: Sintaks cron Unix, dan sintaks yang lebih kompleks yang dikenali sebagai sintaks ungkapan cron atau sintaks cron kuarza.
Struktur Dalaman Cron dan Cara Ia Berfungsi
Cron beroperasi berdasarkan fail konfigurasi yang ringkas tetapi berkuasa yang dikenali sebagai fail "crontab". Fail ini mengandungi satu baris untuk setiap tugasan yang akan dijalankan, terdiri daripada lima medan masa dan tarikh, diikuti dengan arahan untuk dijalankan pada masa yang ditentukan.
Lima medan mewakili:
- Minit selepas jam (0 – 59)
- Jam dalam sehari (0 – 23)
- Hari dalam sebulan (1 – 31)
- Bulan dalam setahun (1 – 12)
- Hari dalam seminggu (0 – 7, dengan 0 dan 7 adalah Ahad)
Medan arahan mengandungi tugas yang akan dijalankan pada masa yang ditetapkan dalam lima medan pertama.
Ciri-ciri Utama Cron
Ciri utama Cron termasuk:
- Ia membolehkan tugasan dijalankan secara automatik di latar belakang pada selang masa yang tetap.
- Ia menyediakan platform yang fleksibel untuk menjadualkan tugas (skrip atau arahan) dengan pelbagai unit masa.
- Setiap pengguna boleh mempunyai fail crontab mereka sendiri.
- Kerja Cron boleh dijadualkan untuk dijalankan mengikut minit, jam, hari dalam seminggu, hari dalam bulan dan bulan dalam setahun.
- Cron menyediakan cara yang mudah dan berkesan untuk mengautomasikan pelbagai tugas sistem.
Jenis-jenis Cron
Pekerjaan cron secara umumnya boleh dikategorikan seperti berikut:
taip | Penerangan |
---|---|
But semula | Berjalan sekali pada permulaan. |
Anakron | Berjalan pada selang waktu yang ditentukan dalam hari. |
Sistem Cron | Disimpan dalam /etc/crontab dan dalam direktori /etc/cron.d/, ini bertujuan untuk seluruh sistem. |
Cron Pengguna | Setiap pengguna boleh memilikinya sendiri, dan ia disimpan dalam /var/spool/cron/crontabs/. |
Penggunaan Cron, Masalah dan Penyelesaiannya
Cron berguna untuk mengautomasikan tugas, tetapi ia boleh membawa kepada masalah jika tidak digunakan dengan berhati-hati. Contohnya, tugas cron yang salah konfigurasi boleh menyebabkan penggunaan CPU yang tinggi. Selain itu, cron hanya menghantar e-mel output tugasnya, jika ada, kepada pengguna ia menjalankan tugas sebagai. Ini boleh menyebabkan ralat terlepas jika tidak diperiksa dengan kerap.
Penyelesaian biasa untuk isu ini termasuk:
- Memeriksa penggunaan CPU yang tinggi dengan kerap dan mengkonfigurasi semula atau menghentikan kerja yang tidak perlu.
- Memastikan semua arahan dan skrip berjalan dengan betul sebelum menetapkannya sebagai tugas cron.
- Mengubah hala output ke fail log atau menyediakan pelayan mel untuk memantau kerja cron dengan lebih berkesan.
Perbandingan dengan Alat Serupa
Terdapat penjadual tugas lain yang serupa dengan cron, seperti anacron dan pemasa systemd. Perbezaan utama antara ini boleh diringkaskan sebagai:
alat | Penerangan |
---|---|
Cron | Sesuai untuk tugasan dijalankan pada masa tertentu dalam sehari. Tidak menjalankan pekerjaan yang terlepas. |
Anakron | Sesuai untuk tugasan dijalankan sekali sehari/mingguan/bulanan. Akan menjalankan kerja terlepas apabila mesin kembali dalam talian. |
Sistemd | Sesuai untuk senario yang lebih kompleks kerana ia menawarkan lebih banyak pilihan dan ia disepadukan dengan baik dengan pengedaran Linux moden. |
Perspektif Masa Depan dan Teknologi Berkaitan
Memandangkan sistem berasaskan Unix terus berkembang, begitu juga Cron. Walaupun kemunculan penjadual tugas yang lebih maju seperti systemd, kesederhanaan dan kuasa Cron memastikan ia kekal digunakan hari ini.
Trend terkini ke arah aplikasi kontena dan seni bina perkhidmatan mikro juga telah menghasilkan cara baharu untuk menggunakan Cron. Sebagai contoh, Kubernetes, platform orkestrasi kontena yang popular, mempunyai ciri yang dikenali sebagai CronJobs yang serupa dengan Cron dalam sistem berasaskan Unix.
Pelayan Proksi dan Cron
Pelayan proksi boleh digunakan dengan berkesan dalam kombinasi dengan Cron untuk mengautomasikan tugasan tertentu. Contohnya, jika anda mempunyai skrip yang perlu kerap mengakses tapak web atau API melalui pelayan proksi, anda boleh menyediakan tugas cron untuk menjalankan skrip itu pada selang waktu tertentu.
Cron juga boleh digunakan untuk memutar proksi pada selang waktu tertentu, mengurangkan peluang mana-mana proksi tunggal disekat. Sebagai contoh, perkhidmatan proksi OneProxy boleh diautomasikan dengan Cron untuk tugas seperti mengikis data, mengautomasikan tugas media sosial dan banyak lagi.
Pautan Berkaitan
Untuk mendapatkan maklumat lanjut tentang Cron, pertimbangkan sumber berikut: