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 Pekerjaan 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 / skripDari 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 medan, gunakan simbol operator berikut:
- Asterisk (*): Untuk menentukan semua nilai yang mungkin untuk medan
- Sengkang (-): Ke snyatakan 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 dikendalikan / etc / cron.setiap jam, / etc / cron.setiap hari, / etc / cron.setiap minggu dan / etc / cron.bulanan. Hanya pentadbir sistem yang dapat mengakses fail-fail ini.
Pentadbir sistem dapat menentukan tugas cron menggunakan perintah berikut:
$ nano / etc / crontabBerikut adalah sintaks pekerjaan di / etc / crontab fail:
# min jam arahan hari pengguna haribulan minggu* * * * * pengguna1 ifconfig
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 -eContohnya, jika Anda masuk sebagai pengguna "uji", menjalankan perintah crontab -e akan mengedit file crontab untuk pengguna "uji". Begitu juga, jika anda log masuk sebagai pengguna root, perintah crontab -e akan mengedit fail crontab untuk pengguna root.
Keluarkan arahan di bawah di Terminal untuk mengedit fail crontab untuk pengguna lain:
$ sudo crontab -uSebagai contoh, jika anda log masuk sebagai pengguna "test1" dan ingin mengedit file crontab untuk pengguna "test2", perintahnya adalah:
$ sudo crontab -u test2 -eBerikut adalah sintaks pekerjaan cron yang boleh ditambahkan dalam fail crontab:
# m h arahan dayofmonth bulan dayofweek* * * * * ifconfig
Anda dapat melihat dalam pekerjaan khusus pengguna bahwa 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 dari 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, tarikh, dan selang waktu tertentu dengan unit minimum dalam beberapa minit, i.e., anda boleh menjalankan tugas setiap minit.
Untuk menjadualkan pekerjaan dengan cron, buka fail crontab menggunakan kaedah yang dibincangkan di bahagian sebelumnya. Setelah anda membuka fail crontab, anda akan diminta untuk memilih penyunting teks. Taipkan nombor untuk memilih penyunting teks pilihan anda. Tatal ke bawah ke bahagian 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-6 arahan / skrip
Minit
Dalam bidang ini, kita menentukan minit ketika kita mahu perintah itu dilaksanakan. Ia dinyatakan 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 jam-jam 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 dalam bulan ketika kita ingin 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. * 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:
* / 15 * * * * 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 pukul 5 petang setiap hari, tambahkan baris di bawah dalam fail crontab:
0 17 * * * arahan / skripJalankan tugas 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 * 15 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:
* / 15 * * * *Menggunakan Rentetan
Rentetan berikut juga dapat digunakan untuk menentukan pekerjaan:
- @jamur: Untuk melaksanakan tugas setiap jam, i.e., "0 * * * *"
- @ tengah malam: Untuk melaksanakan tugas sekali setiap hari, i.e., "0 0 * * *"
- @ harian: sama seperti tengah malam
- @setiap minggu: Untuk melaksanakan pekerjaan seminggu sekali, i.e., "0 0 * * 0"
- @bulan: Untuk melaksanakan pekerjaan sebulan sekali, i.e., "0 0 1 * *"
- @setiap tahun: Untuk melaksanakan pekerjaan sekali setiap tahun, i.e., "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 / skrip @weeklyDirektori Kron yang telah ditetapkan
Terdapat beberapa direktori cron yang telah ditentukan di Linux di mana skrip yang disimpan secara automatik dijalankan. Sekiranya kita meletakkan skrip di bawah direktori ini, skrip tersebut akan dijalankan secara automatik pada waktu yang dikonfigurasi.
- / etc / cron.setiap hari
- / etc / cron.setiap jam
- / etc / cron.bulanan
- / etc / cron.setiap minggu
Sebagai contoh, untuk melaksanakan skrip sebulan sekali, anda perlu meletakkannya di / etc / cron.bulanan.
Lihat Pekerjaan Cron
Lihat pekerjaan untuk pengguna semasa
Gunakan arahan berikut untuk melihat semua pekerjaan cron yang dijadualkan untuk pengguna semasa:
$ crontab -lLihat pekerjaan untuk pengguna root
Untuk melihat semua pekerjaan yang dijadualkan dari pengguna root, keluarkan perintah berikut di Terminal:
$ kucing / etc / 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
Untuk 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 -la / etc / cron.setiap jamLihat pekerjaan cron setiap hari
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap hari, keluarkan perintah berikut di Terminal:
$ ls -la / etc / cron.setiap hari /Lihat pekerjaan cron mingguan
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap minggu, keluarkan arahan berikut di Terminal:
$ ls -la / etc / cron.setiap minggu/Lihat pekerjaan cron bulanan
Untuk melihat semua pekerjaan cron yang dikonfigurasi untuk dijalankan setiap bulan, keluarkan perintah berikut di Terminal:
$ ls -la / etc / cron.bulanan /Sandarkan Semua Pekerjaan Cron
Sebaiknya simpan cadangan semua pekerjaan cron dalam fail sehingga anda dapat pulih sekiranya penghapusan. Untuk membuat sandaran semua pekerjaan semasa, gunakan operator pengalihan untuk mengarahkan output crontab -l ke fail.
$ crontab -l> backup_cron.txtMembuang Semua Kerja Kron Berjadual
Untuk membuang semua pekerjaan cron yang dijadualkan, gunakan bendera -r seperti berikut:
$ crontab -rKebenaran Cron
Kami dapat membatasi akses ke perintah crontab melalui dua fail: / dll / cron.benarkan dan / etc / cron.menafikan.
- / etc / cron.benarkan - Tambahkan pengguna (satu per baris) yang anda mahu izinkan akses ke perintah crontab. Pengguna ini dapat menjalankan tugas jadual.
- / etc / cron.menafikan - Tambahkan pengguna (satu per baris) yang anda mahu tolak 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, penjana crontab.org, dan pembuat 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.