Dalam tutorial ini, kami akan memberi anda pengenalan asas mengenai semua perkara yang perlu anda fahami untuk menjadualkan pekerjaan dengan cron. Ini merangkumi sintaks asas cron, menyunting fail crontab, menjadualkan pekerjaan dengan cron dengan beberapa contoh, melihat kerja cron, dll.
Asas Kerja Cron
Mari kita fahami beberapa asas pekerjaan cron.
Apa itu Crond?
Crond adalah daemon dalam sistem Linux yang berjalan di latar belakang dan memeriksa setiap minit untuk melihat apakah ada pekerjaan yang dijadwalkan pada waktu itu. Sekiranya ada, ia melaksanakan tugas itu, jika tidak, ia tetap tidak aktif.
Sintaks Pekerjaan Cron
Sintaks untuk kerja cron adalah seperti berikut:
* * * * *arahan/skrip
Dari kiri:
- Yang pertama * sepadan dengan Minit (0-59)
- Yang kedua * sesuai dengan Jam (0-23)
- Yang ketiga * sepadan dengan Hari dalam bulan (1-31)
- * Keempat * sepadan dengan Bulan tahun (1-12)
- Kelima * sepadan dengan Hari dalam seminggu (0-6, Ahad hingga Sabtu)
Untuk menentukan beberapa nilai dalam bidang, gunakan simbol operator berikut:
- Tanda bintang (*): Untuk menentukan semua nilai yang mungkin untuk medan
- Sengkang (-): Ke s nyatakan pelbagai nilai
- Tanda koma (,): Untuk menentukan senarai nilai
- Pemisah (/): Untuk menentukan nilai langkah
Menyunting Fail Crontab
Crontab adalah fail yang mengandungi tugas yang dijadualkan dalam sintaks tertentu. Terdapat dua jenis fail crontab; satu untuk pekerjaan cron khusus sistem dan satu lagi untuk pekerjaan cron khusus pengguna.
Pekerjaan cron sistem
Pekerjaan cron seluruh sistem terletak di / etc / crontab fail dan /etc/cron.d direktori, dan mereka dijalankan melalui /etc/cron.hourly , /etc/cron.daily , /etc/cron.weekly dan /etc/cron.bulan. Hanya pentadbir sistem yang dapat mengakses fail-fail ini.
Pentadbir sistem dapat menentukan tugas cron menggunakan perintah berikut:
$nano /dan lain-lain/crontabBerikut adalah sintaks pekerjaan di / etc / crontab fail:
# min jam arahan hari pengguna haribulan minggu* * * * *pengguna1ifconfig
Pekerjaan cron khusus pengguna
Pekerjaan cron khusus pengguna terletak di / var / spool / cron / crontabs direktori. Walaupun anda dapat mengedit pekerjaan ini secara manual, disarankan untuk mengedit pekerjaan ini menggunakan perintah crontab -e.
Pengguna standard dapat menentukan pekerjaan cron menggunakan perintah berikut:
$crontab-DanSebagai contoh, jika anda masuk sebagai pengguna ujian, menjalankan perintah crontab -e akan mengedit fail crontab untuk pengguna ujian. Begitu juga, jika anda log masuk sebagai pengguna root, perintah crontab -e akan menyunting fail crontab untuk pengguna root.
Keluarkan arahan di bawah di Terminal untuk mengedit fail crontab untuk pengguna lain:
$sudocrontab-u <nama pengguna> -DanSebagai contoh, jika anda log masuk sebagai pengguna test1 dan ingin mengedit fail crontab untuk pengguna test2, perintahnya adalah:
$sudocrontab-uujian2-DanBerikut adalah sintaks pekerjaan cron yang boleh ditambahkan dalam fail crontab:
# m h arahan dayofmonth bulan dayofweek* * * * * ifconfig
Anda dapat melihat dalam pekerjaan khusus pengguna bahawa tidak ada nama pengguna yang diajukan.
Perintah Crontab
Perintah crontab digunakan untuk mengedit, menyenaraikan, dan membuang tugas cron:
- crontab -e Untuk mengedit fail crontab pengguna semasa
- crontab -l Untuk memaparkan kandungan fail crontab
- crontab -u [nama pengguna] Untuk mengedit fail crontab pengguna lain
- crontab -r Untuk membuang fail crontab pengguna semasa
- crontab -i Untuk memaparkan arahan sebelum membuang fail crontab pengguna semasa
Menjadualkan Pekerjaan dengan Cron
Dengan Cron, anda dapat menjalankan tugas pada waktu, tanggal, dan selang waktu tertentu dengan unit minimum dalam beberapa minit, iaitu, anda dapat menjalankan tugas setiap minit.
Untuk menjadualkan tugas dengan cron, buka fail crontab menggunakan kaedah yang dibincangkan di bahagian sebelumnya. Sebaik sahaja anda membuka fail crontab, anda akan diminta memilih penyunting teks. Taipkan nombor untuk memilih penyunting teks pilihan anda. Tatal ke bawah hingga ke bawah fail dan tambahkan tugas dalam sintaks yang dijelaskan di atas. Setiap baris dalam fail menentukan satu perintah. Lima entri pertama dalam baris menentukan waktu yang dijadualkan, dan entri terakhir menentukan arahan atau skrip mana yang harus dijalankan.
Contoh:
Baris berikut dalam fail crontab akan menjadualkan tugas cron untuk menjalankan perintah / skrip pada setiap minit ke-30 lewat 5 jam pada setiap hari dalam seminggu dari hari Isnin hingga Sabtu.
* /30 5 * * 1-6arahan/skrip
Minit
Dalam bidang ini, kita menentukan minit ketika kita mahu perintah itu dilaksanakan. Ia ditentukan dari 0 hingga 59. * dalam bidang ini bermaksud menjalankan tugas setiap minit. Pada baris crontab di atas, * / 30 memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap 30 minit.
Jam
Dalam bidang ini, kita menentukan waktu-waktu ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 0 hingga 23. * dalam bidang ini bermaksud menjalankan tugas setiap jam. Pada baris crontab di atas, nilai 5 memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap lima jam.
Hari bulan
Dalam bidang ini, kita menentukan hari-hari tertentu bulan ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 1 hingga 31. * dalam bidang ini bermaksud setiap hari. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap hari.
Bulan dalam setahun
Dalam bidang ini, kita menentukan bulan-bulan tertentu ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan dari 1 hingga 12. The * dalam bidang ini bermaksud setiap bulan. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap bulan.
Hari dalam seminggu
Dalam bidang ini, kita menentukan hari-hari tertentu dalam seminggu ketika kita mahu perintah itu dilaksanakan. Ia ditentukan dari 0 hingga 6 dari hari Ahad hingga Sabtu (0 untuk hari minggu dan 6 untuk hari Sabtu). * Dalam bidang ini bermaksud setiap hari dalam seminggu. Pada baris crontab di atas, * memberitahu tugas cron untuk menjalankan perintah / skrip yang ditentukan setiap hari dalam seminggu.
Contoh Pekerjaan Cron
Berikut adalah beberapa contoh pekerjaan cron:
Jalankan tugas cron setiap 15 minit
Untuk menjadualkan kerja cron dijalankan setiap 15 minit, tambahkan baris di bawah dalam fail crontab:
* /lima belas * * * *arahan/skripJalankan kerja cron pada pukul 5 pagi setiap hari
Untuk menjadualkan kerja cron dijalankan pada pukul 5 pagi setiap hari, tambahkan baris di bawah dalam fail crontab:
0 5 * * *arahan/skripJalankan kerja cron pada pukul 5 petang setiap hari
Untuk menjadualkan kerja cron dijalankan pada jam 5 petang setiap hari, tambahkan baris di bawah dalam fail crontab:
0 17 * * *arahan/skripJalankan kerja cron pada jam 9 pagi pada hari pertama setiap bulan
Untuk menjadualkan kerja cron dijalankan pada jam 9 pagi pada hari pertama setiap bulan, tambahkan baris di bawah dalam fail crontab:
0 9 1 * *arahan/skripJalankan pekerjaan cron setiap jam pada setiap 15 Mac
Untuk menjadualkan kerja cron setiap jam pada setiap 15 Mac, tambahkan baris di bawah dalam fail crontab:
0 * lima belas 3 *arahan/skripJalankan kerja cron setiap 5 jam
Untuk menjadualkan kerja cron setiap 5 jam, tambahkan baris di bawah dalam fail crontab:
0 * /5 * * *arahan/skripJalankan tugas cron setiap 15 minit
Untuk menjadualkan kerja cron dijalankan setiap 15 minit, tambahkan baris di bawah dalam fail crontab:
* /lima belas * * * *Menggunakan Rentetan
Rentetan berikut juga dapat digunakan untuk menentukan pekerjaan:
- @jamur: Untuk melaksanakan tugas sekali setiap jam, iaitu, 0 * * * *
- @ tengah malam: Untuk melaksanakan pekerjaan sekali setiap hari, iaitu, 0 0 * * *
- @ harian: sama seperti tengah malam
- @setiap minggu: Untuk melaksanakan pekerjaan sekali setiap minggu, iaitu, 0 0 * * 0
- @bulan: Untuk melaksanakan pekerjaan sebulan sekali, iaitu, 0 0 1 * *
- @setiap tahun: Untuk melaksanakan pekerjaan sekali setiap tahun, iaitu, 0 0 1 1 *
- @tahun: sama seperti @annually
- @reboot: Untuk melaksanakan tugas sekali pada setiap permulaan
Sebagai contoh, untuk menjalankan skrip atau perintah setiap minggu, entri dalam file crontab adalah:
@arahan mingguan/skripDirektori Kron yang telah ditetapkan
Terdapat beberapa direktori cron yang telah ditentukan di Linux di mana skrip yang disimpan secara automatik dijalankan. Sekiranya kita meletakkan sebarang skrip di bawah direktori ini, skrip tersebut akan dijalankan secara automatik pada waktu yang dikonfigurasi.
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.bulan
- /etc/cron.weekly
Sebagai contoh, untuk melaksanakan skrip sebulan sekali, anda perlu meletakkannya di /etc/cron.monthly.
Lihat Pekerjaan Cron
Lihat pekerjaan untuk pengguna semasa
Gunakan arahan berikut untuk melihat semua pekerjaan cron yang dijadualkan untuk pengguna semasa:
$crontab-tempatLihat pekerjaan untuk pengguna root
Untuk melihat semua pekerjaan yang dijadualkan dari pengguna root, keluarkan perintah berikut di Terminal:
$kucing /dan lain-lain/crontabAnda perlu log masuk sebagai pengguna root atau menjalankan perintah sebagai sudo.
Lihat pekerjaan untuk pengguna lain
Untuk melihat semua pekerjaan yang dijadualkan dari pengguna tertentu, berikan perintah berikut di Terminal menggantikan dengan nama pengguna sebenarnya:
$sudocrontab-u <nama pengguna> -tempatUntuk menjalankan perintah ini, anda memerlukan hak istimewa sudo.
Lihat pekerjaan cron setiap jam
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk berjalan setiap jam, keluarkan perintah berikut di Terminal:
$ls -tempat /dan lain-lain/cron.hourlyLihat pekerjaan cron setiap hari
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap hari, keluarkan perintah berikut di Terminal:
$ls -tempat /dan lain-lain/cron.daily/Lihat pekerjaan cron mingguan
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap minggu, keluarkan arahan berikut di Terminal:
$ls -tempat /dan lain-lain/cron.weekly/Lihat pekerjaan cron bulanan
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap bulan, keluarkan perintah berikut di Terminal:
$ls -tempat /dan lain-lain/cron.bulan/Sandarkan Semua Pekerjaan Cron
Sebaiknya simpan cadangan semua pekerjaan cron dalam fail sehingga anda dapat pulih sekiranya berlaku penghapusan. Untuk membuat sandaran semua pekerjaan semasa, gunakan operator pengalihan untuk mengarahkan output crontab -l ke fail.
$crontab-tempat >cadangan_cron.txtMembuang Semua Kerja Kron Berjadual
Untuk membuang semua pekerjaan cron yang dijadualkan, gunakan bendera -r seperti berikut:
$crontab-rKebenaran Cron
Kita boleh menghadkan akses ke perintah crontab melalui dua fail: / dll / cron.allow dan / etc / cron.deny.
- /etc/cron.allow - Tambahkan pengguna (satu per baris) yang anda mahu izinkan akses ke perintah crontab. Pengguna ini dapat menjalankan tugas jadual.
- /etc/cron.deny - Tambahkan pengguna (satu per baris) yang anda mahu menolak akses ke perintah crontab. Pengguna ini tidak dapat menjalankan tugas yang dijadualkan.
Penjana Sintaks Crontab
Terdapat beberapa laman web yang membolehkan menghasilkan sintaks untuk crontabs. Laman web ini menjadikannya lebih mudah untuk menghasilkan ekspresi crontab tanpa perlu mengingat sintaksnya. Walaupun terdapat pelbagai laman web yang tersedia untuk penjana sintaks seperti crontabgenerator.com , crontab-generator.org , dan cronmaker.com . Yang paling saya gemari dan paling berguna adalah crontab.guru . Berdasarkan input pengguna, ia menghasilkan ungkapan crontab yang boleh anda copy-paste ke dalam file crontab.
Kesimpulannya
Dalam tutorial ini, kami telah menerangkan asas-asas pekerjaan cron, sintaksnya, dan cara menyiapkannya. Kami juga telah membincangkan cara melihat pekerjaan cron, membuat sandaran, dan menghapusnya jika tidak diperlukan lagi.