1. Gambaran keseluruhan
Ringkasnya, cron adalah utiliti asas yang terdapat pada sistem berasaskan Unix. Ini membolehkan pengguna menjadualkan tugas untuk dijalankan secara berkala pada tarikh / waktu yang ditentukan. Dan, secara semula jadi ini adalah alat yang bagus untuk mengautomasikan banyak proses yang sebaliknya memerlukan campur tangan manusia.
Cron berjalan sebagai proses daemon - ini bermaksud ia hanya perlu dimulakan sekali dan ia akan terus berjalan di latar belakang. Proses ini menggunakan crontab untuk membaca catatan jadual dan memulakan tugas.
Dari masa ke masa, format ekspresi cron telah digunakan secara meluas dan banyak program dan perpustakaan lain menggunakannya.
2. Bekerja Dengan Crontab
A cron jadual adalah fail teks sederhana yang terletak di bawah / var / jet / cron / crontabs pada sistem Linux. Kami tidak dapat mengedit fail crontab secara langsung ; kita perlu mengaksesnya menggunakan perintah crontab .
Sebagai contoh, untuk membuka fail crontab , kita perlu menjalankan perintah ini:
crontab -e
Setiap baris di crontab adalah entri dengan ekspresi dan perintah untuk dijalankan:
* * * * * /usr/local/ispconfig/server/server.sh
Entri ini menjalankan skrip yang disebutkan setiap minit.
3. Ekspresi Cron
Mari fahami ungkapan cron ; ia terdiri daripada lima bidang:
3.1. Watak Istimewa dalam Ekspresi
- * (semua) - menentukan bahawa peristiwa harus berlaku untuk setiap unit masa. Contohnya, "*" di medan < minit> - bermaksud "untuk setiap minit"
- ? (mana-mana) - ia digunakan dalam bidang < hari bulan> dan < hari-minggu> untuk menunjukkan nilai sewenang-wenang - mengabaikan nilai medan. Sebagai contoh, jika kita ingin mengaktifkan skrip pada “5 setiap bulan” tanpa mengira hari dalam seminggu jatuh pada tarikh tersebut, maka kita menentukan “ ? "Dalam < hari-of-minggu> bidang
- - (julat) - menentukan julat nilai. Contohnya, " 10-11 " dalam lapangan bermaksud "jam 10 dan 11"
- , (nilai) - menentukan pelbagai nilai. Contohnya, " MON, WED, FRI" di < hari minggu> bermaksud pada hari "Isnin, Rabu, dan Jumaat"
- / (kenaikan) - menentukan nilai kenaikan. Sebagai contoh, "5/15" di medan < minit> , bermaksud "5, 20, 35 dan 50 minit dalam satu jam"
- L (terakhir) - ia mempunyai makna yang berbeza ketika digunakan dalam pelbagai bidang. Sebagai contoh, jika ia diterapkan dalam bidang < hari bulan> , maka itu berarti hari terakhir bulan itu, iaitu "31 untuk bulan Januari" dan seterusnya seperti pada bulan kalendar. Ini dapat digunakan dengan nilai offset, seperti " L-3 ", yang menunjukkan "hari ketiga hingga terakhir bulan kalendar". Dalam < hari dalam seminggu> , ini menentukan "hari terakhir dalam seminggu". Ini juga dapat digunakan dengan nilai lain dalam < hari-minggu> , seperti " 6L ", yang menunjukkan "Jumaat terakhir"
- W (hari minggu) - menentukan hari kerja (Isnin hingga Jumaat) yang terdekat dengan hari tertentu dalam bulan itu. Contohnya, jika kita menentukan " 10W " di medan < hari bulan> , maka itu bermaksud "hari kerja hampir ke 10 bulan itu". Jadi jika "10" adalah hari Sabtu, maka pekerjaan akan dipicu pada "9", dan jika "10" adalah hari minggu, maka itu akan memicu pada "11" Sekiranya kita menentukan " 1W " pada < hari bulan> dan jika "1" adalah hari Sabtu, maka pekerjaan itu akan dipicu pada "ke-3" pada hari Isnin, dan tidak akan kembali ke bulan sebelumnya
- # - menentukan kejadian " N -th" pada hari kerja dalam sebulan, misalnya, "Jumaat ke-3 bulan" dapat ditunjukkan sebagai " 6 # 3 "
3.2. Contoh Ekspresi Cron
Mari kita lihat beberapa contoh ungkapan cron dengan menggunakan kombinasi medan dan watak khas:
Pada 12:00 tengah hari (tengah hari) setiap hari:
0 12 * * ?
Setiap 5 minit bermula pada pukul 1 petang dan berakhir pada 1:55 petang dan kemudian bermula pada pukul 6 petang dan berakhir pada 6:55 petang, setiap hari:
0/5 13,18 * * ?
Setiap minit bermula pada pukul 1 petang dan berakhir pada jam 1:05 tengah hari, setiap hari:
0-5 13 * * ?
Pukul 1:15 dan 13:45 setiap hari Selasa pada bulan Jun:
15,45 13 ? 6 Tue
Pukul 9:30 pagi setiap hari Isnin, Selasa, Rabu, Khamis, dan Jumaat:
30 9 ? * MON-FRI
Pada jam 9:30 pagi pada hari ke-15 setiap bulan:
30 9 15 * ?
Pada jam 6 petang pada hari terakhir setiap bulan:
0 18 L * ?
Pada jam 6 petang pada hari ke-3 hingga terakhir setiap bulan:
0 18 L-3 * ?
Pada 10:30 pagi pada hari Khamis terakhir setiap bulan:
30 10 ? * 5L
Pada pukul 10 pagi pada hari Isnin ketiga setiap bulan:
0 10 ? * 2#3
Pada pukul 12 pagi tengah malam setiap hari selama lima hari bermula pada hari ke-10 bulan:
0 0 10/5 * ?
4. Rentetan Khas Cron
Selain medan yang ditentukan dalam ekspresi cron, ada juga sokongan untuk beberapa nilai khas, yang telah ditentukan - yang dapat kita gunakan dan bukannya bidang:
- @reboot - jalankan sekali pada permulaan
- @tahun atau @annualy - dijalankan setahun sekali
- @bulan - jalankan sebulan sekali
- @weekly - jalankan seminggu sekali
- @ harian atau @ tengah malam - jalankan sehari sekali
- @hourly - jalankan setiap jam
5. Kesimpulan
Dalam artikel ringkas ini, kami telah meneroka pekerjaan cron dan crontab .
Kami juga telah melihat sebilangan contoh ungkapan yang dapat kami gunakan dalam pekerjaan harian kami, atau hanya menyimpulkan ungkapan lain dari.