Memahami dan Menggunakan Cron: Panduan Komprehensif untuk Menjadualkan Kerja
Cron, ringkasan untuk arahan dijalankan dalam talian, ialah penjadual kerja berasaskan masa yang berkuasa dalam sistem pengendalian seperti Unix. Istilah cron adalah permainan kata kronos or chronos, yang dalam mitologi Yunani mewakili masa. Nama cron untuk penjadual kerja berasaskan masa mencerminkan fungsinya untuk menjadualkan dan melaksanakan tugas pada masa atau selang waktu tertentu, menjadikannya rujukan yang sesuai kepada konsep masa dalam mitologi.
Cron membolehkan anda mengautomasikan tugasan berulang, melaksanakan skrip pada selang waktu tertentu dan mengekalkan kecekapan sistem. Panduan komprehensif ini akan membimbing anda melalui semua yang anda perlu ketahui tentang cron, daripada pemasangan hingga penggunaan, perbendaharaan kata utama dan sampel kod sebenar.
Jadual Kandungan
- Apa itu cron?
- Memasang Cron
- Konsep dan Terminologi Asas
- Sintaks Cron
- Contoh dan Kes Penggunaan
- Perangkap Biasa dan Amalan Terbaik
- Sumber cron tambahan
Apa itu Cron?
Cron ialah daemon (proses latar belakang) yang berjalan pada sistem berasaskan Unix, termasuk Linux dan macOS. Tujuan utamanya adalah untuk melaksanakan tugas yang dijadualkan secara automatik. Tugasan ini boleh terdiri daripada skrip ringkas kepada penyelenggaraan sistem dan sandaran.
Memasang Cron
Dalam kebanyakan sistem seperti Unix, cron diprapasang. Anda boleh menyemak ketersediaannya dengan membuka terminal dan menaip:
crontab -e
Jika arahan ini membuka editor jadual cron, anda telah memasang cron. Jika tidak, anda boleh memasangnya menggunakan pengurus pakej sistem anda. Sebagai contoh, pada Ubuntu, anda boleh menggunakan:
sudo apt-get install cron
Konsep dan Terminologi Cron
Sebelum menyelami penggunaan cron, mari kita fahami beberapa konsep dan terminologi penting:
- Ketam: Ringkasan untuk meja cron, ia adalah fail yang mengandungi senarai tugas yang dijadualkan untuk pengguna.
- Cronjob: Satu tugas atau arahan yang dijadualkan untuk dijalankan pada masa tertentu.
- Bidang: Setiap cronjob mempunyai lima medan yang menentukan apabila kerja dijalankan:
- Minit (0-59)
- Jam (0-23)
- Hari dalam bulan (1-31)
- Bulan (1-12)
- Hari dalam seminggu (0-7, di mana kedua-dua 0 dan 7 mewakili Ahad)
Sintaks Cron
Memahami sintaks entri crontab adalah penting. Ia mengikut corak:
* * * * * command-to-be-executed
Berikut ialah penjelasan ulasan yang boleh anda masukkan dalam tugas cron anda:
# +---------------- minute (0 - 59)
# | +------------- hour (0 - 23)
# | | +---------- day of month (1 - 31)
# | | | +------- month (1 - 12)
# | | | | +---- day of week (0 - 6) (Sunday=0 or 7)
# | | | | |
* * * * * /var/www/html/myscript.php
Setiap asterisk (*) mewakili medan dalam ungkapan cron. Contohnya, untuk menjadualkan kerja setiap hari pada 3:30 PM, anda akan menggunakan:
30 15 * * * command-to-be-executed
Contoh Cron dan Kes Penggunaan
Mari kita terokai beberapa contoh praktikal untuk menggambarkan penggunaan cron:
- Menjalankan Skrip Harian: Untuk melaksanakan skrip setiap hari pada tengah malam, anda boleh menggunakan:
0 0 * * * /path/to/script.sh
- Menjalankan Skrip Setiap Jam: Untuk tugasan setiap jam, gunakan:
0 * * * * /path/to/script.sh
- Sandaran Mingguan: Untuk menjadualkan sandaran mingguan pada hari Ahad jam 2 pagi, gunakan:
0 2 * * 0 /path/to/backup-script.sh
- Menjalankan Tugas pada Bulan Tertentu: Untuk menjalankan kerja hanya pada bulan Januari dan Julai pada jam 8:30 pagi:
30 8 * 1,7 * /path/to/script.sh
Perangkap Cron dan Amalan Terbaik
- Pembolehubah Persekitaran: Pastikan tugas cron anda menyediakan pembolehubah persekitaran yang diperlukan, kerana tugas cron tidak mewarisi pembolehubah persekitaran shell anda.
- Kebenaran: Pastikan anda menetapkan kebenaran kepada fail skrip anda sebagai boleh laku. Setiap kali saya menyimpan semula skrip saya, saya mendapati kebenaran saya perlu ditetapkan semula!
- Pembolehubah Laluan: Tentukan laluan penuh kepada boleh laku dan skrip dalam tugas cron anda untuk mengelakkan isu dengan laluan relatif.
- Ujian: Uji mereka dalam persekitaran yang selamat sebelum menyediakan tugas cron kritikal untuk memastikan ia berfungsi seperti yang diharapkan.
- Pembalakan: Ubah hala output tugas cron anda ke fail log untuk menjejaki pelaksanaannya dan sebarang kemungkinan ralat.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Tugas cron ini menjalankan skrip /path/to/script.sh
setiap hari pada tengah malam, dan output (kedua-dua stdout dan stderr) yang dihasilkan oleh skrip dilampirkan pada fail log
/path/to/cron.log
. Ini adalah amalan biasa untuk menangkap dan log keluaran kerja cron untuk tujuan pemantauan dan penyelesaian masalah. Mari pecahkan sintaks kerja cron khusus ini:
- *0 0 * * *: Bahagian ini mentakrifkan jadual waktu kerja cron harus dijalankan. Dalam kes ini, ia dijadualkan berjalan setiap hari pada tengah malam (0 minit lewat 0 jam).
- /path/to/script.sh: Ini ialah arahan atau skrip untuk dilaksanakan apabila tugas cron dijalankan. Contoh ini menunjukkan skrip yang terletak di
/path/to/script.sh
. - >> /path/to/cron.log: Bahagian ini mengubah hala keluaran standard (stdout) tugas cron ke fail log bernama
cron.log
terletak di/path/to/
. Yang>>
operator menambahkan output pada fail log, jadi jika fail itu tidak wujud, ia akan dibuat, dan jika ia sudah wujud, output akan ditambahkan pada penghujung fail. - 2> & 1: Ini digunakan untuk mengalihkan kedua-dua output standard (stdout) dan ralat standard (stderr) ke fail log yang sama. The
2
mewakili stderr, dan1
mewakili stdout. Jadi,2>&1
bermakna kedua-dua stdout dan stderr dialihkan ke fail log yang sama yang dinyatakan sebelum ini.
Cron ialah alat yang berharga untuk mengautomasikan tugas pada sistem berasaskan Unix. Dengan pilihan penjadualannya yang fleksibel, ia boleh memudahkan pentadbiran sistem dan meningkatkan kecekapan. Dengan memahami sintaksnya dan mengikut amalan terbaik, anda boleh memanfaatkan kuasa cron untuk mengautomasikan tugas rutin anda dengan berkesan.
Sumber Cron Tambahan
- Daemon Unix - Dean Wilson