Cronni tushunish va undan foydalanish: Ishlarni rejalashtirish bo'yicha keng qamrovli qo'llanma
cron, uchun qisqa buyruq onlayn ishlaydi, Unix-ga o'xshash operatsion tizimlarda vaqtga asoslangan kuchli ish rejalashtiruvchisi. Atama cron so‘z ustidagi o‘yindir kronos or chronos, yunon mifologiyasida vaqtni ifodalaydi. Vaqtga asoslangan ishni rejalashtiruvchi uchun cron nomi uning vazifalarni ma'lum vaqt yoki vaqt oralig'ida rejalashtirish va bajarish funktsiyasini aks ettiradi va uni mifologiyadagi vaqt tushunchasiga mos keladigan havola qiladi.
Cron sizga takrorlanadigan vazifalarni avtomatlashtirish, skriptlarni ma'lum vaqt oralig'ida bajarish va tizim samaradorligini saqlash imkonini beradi. Ushbu keng qamrovli qo'llanma sizga cron haqida bilishingiz kerak bo'lgan barcha narsalarni, o'rnatishdan foydalanishgacha, asosiy lug'at va haqiqiy kod namunalari bilan tanishtiradi.
Mundarija
- Cron nima?
- Cron o'rnatilmoqda
- Asosiy tushunchalar va terminologiya
- Cron sintaksisi
- Misollar va foydalanish holatlari
- Umumiy tuzoqlar va eng yaxshi amaliyotlar
- Qo'shimcha cron resurslari
Cron nima?
Cron - Linux va macOS, shu jumladan Unix-ga asoslangan tizimlarda ishlaydigan demon (fon jarayoni). Uning asosiy maqsadi rejalashtirilgan vazifalarni avtomatik ravishda bajarishdir. Bu vazifalar oddiy skriptlardan tizimga texnik xizmat ko'rsatish va zaxira nusxalariga qadar bo'lishi mumkin.
Cron o'rnatilmoqda
Ko'pgina Unix-ga o'xshash tizimlarda cron oldindan o'rnatilgan. Terminalni ochib, uning mavjudligini tekshirishingiz mumkin:
crontab -e
Agar ushbu buyruq cron jadval muharririni ochsa, sizda cron o'rnatilgan. Agar yo'q bo'lsa, uni tizimingiz paket menejeri yordamida o'rnatishingiz mumkin. Masalan, Ubuntu-da siz quyidagilarni ishlatishingiz mumkin:
sudo apt-get install cron
Cron tushunchalari va terminologiyasi
Crondan foydalanishga kirishdan oldin, keling, ba'zi muhim tushunchalar va atamalarni tushunib olaylik:
- crontab: Qisqasi cron jadvali, bu foydalanuvchi uchun rejalashtirilgan vazifalar ro'yxatini o'z ichiga olgan fayl.
- Cronjob: Muayyan vaqtda bajarilishi rejalashtirilgan bitta vazifa yoki buyruq.
- Maydonlar: Har bir cronjob ish qachon bajarilishini belgilaydigan beshta maydonga ega:
- Daqiqa (0-59)
- Soat (0-23)
- Oy kuni (1-31)
- Oy (1-12)
- Haftaning kuni (0-7, bu erda 0 va 7 yakshanbani ifodalaydi)
Cron sintaksisi
Crontab yozuvining sintaksisini tushunish juda muhimdir. Bu naqshga amal qiladi:
* * * * * command-to-be-executed
Bu erda siz cron ishingizga kiritishingiz mumkin bo'lgan izohli tushuntirish:
# +---------------- 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
Har bir yulduzcha (*) cron ifodasidagi maydonni ifodalaydi. Masalan, har kuni soat 3:30 da ishni rejalashtirish uchun siz quyidagilarni ishlatasiz:
30 15 * * * command-to-be-executed
Cron misollari va foydalanish holatlari
Keling, crondan foydalanishni ko'rsatish uchun ba'zi amaliy misollarni ko'rib chiqaylik:
- Har kuni skriptni ishga tushirish: Skriptni har kuni yarim tunda bajarish uchun siz quyidagilarni ishlatishingiz mumkin:
0 0 * * * /path/to/script.sh
- Har soatda skriptni ishga tushirish: Bir soatlik vazifa uchun quyidagilardan foydalaning:
0 * * * * /path/to/script.sh
- Haftalik zaxira: Haftalik zaxira nusxasini yakshanba kunlari soat 2:XNUMX da rejalashtirish uchun quyidagilardan foydalaning:
0 2 * * 0 /path/to/backup-script.sh
- Muayyan oylarda topshiriqni bajarish: Ishni faqat yanvar va iyul oylarida soat 8:30 da bajarish uchun:
30 8 * 1,7 * /path/to/script.sh
Cron tuzoqlari va eng yaxshi amaliyotlar
- Atrof-o'zgaruvchilari: Cron ishlari kerakli muhit oʻzgaruvchilarini oʻrnatganligiga ishonch hosil qiling, chunki cron ishlari qobiq muhit oʻzgaruvchilarini meros qilib olmaydi.
- ruxsatlar: Skript faylingizga ruxsatlarni bajariladigan qilib o'rnatganingizga ishonch hosil qiling. Har safar skriptimni qayta saqlaganimda, ruxsatnomalarimni qayta o'rnatish kerakligini ko'raman!
- Yo'l o'zgaruvchilari: Nisbiy yo'llar bilan bog'liq muammolarni oldini olish uchun cron vazifalaringiz ichida bajariladigan fayllar va skriptlarga to'liq yo'lni belgilang.
- Testing: Kutilganidek ishlashiga ishonch hosil qilish uchun muhim cron ishlarini o'rnatishdan oldin ularni xavfsiz muhitda sinab ko'ring.
- Ro'yxatga olish: Ularning bajarilishini va yuzaga kelishi mumkin bo'lgan xatolarni kuzatish uchun cron ishlarining chiqishini jurnal fayliga yo'naltiring.
0 0 * * * /path/to/script.sh >> /path/to/cron.log 2>&1
Ushbu cron ishi skriptni boshqaradi /path/to/script.sh
har kuni yarim tunda va skript tomonidan yaratilgan chiqish (ham stdout, ham stderr) jurnal fayliga qo'shiladi
/path/to/cron.log
. Bu monitoring va muammolarni bartaraf etish uchun cron ishlarining natijalarini yozib olish va jurnalga kiritish uchun keng tarqalgan amaliyotdir. Keling, ushbu maxsus cron ish sintaksisini ajratamiz:
- *0 0 * * *: Bu qism cron ishi qachon ishga tushishi uchun jadvalni belgilaydi. Bunday holda, u har kuni yarim tunda (0 soatdan 0 daqiqa o'tgan) ishlashi rejalashtirilgan.
- /path/to/script.sh: Bu cron ishi bajarilganda bajariladigan buyruq yoki skript. Ushbu misolda joylashgan skript ko'rsatilgan
/path/to/script.sh
. - >> /path/to/cron.log: Bu qism cron ishining standart chiqishini (stdout) nomli jurnal fayliga yo'naltiradi
cron.log
joylashgan/path/to/
. The>>
operator chiqishni jurnal fayliga qo'shadi, shuning uchun agar fayl mavjud bo'lmasa, u yaratiladi va agar u allaqachon mavjud bo'lsa, chiqish faylning oxiriga qo'shiladi. - 2> & 1: Bu standart chiqish (stdout) va standart xato (stderr)ni bir xil jurnal fayliga yo'naltirish uchun ishlatiladi. The
2
stderr ni ifodalaydi va1
stdoutni ifodalaydi. Shunday qilib,2>&1
stdout ham, stderr ham avval belgilangan bir xil jurnal fayliga yo'naltirilganligini anglatadi.
Cron Unix-ga asoslangan tizimlardagi vazifalarni avtomatlashtirish uchun qimmatli vositadir. Moslashuvchan rejalashtirish imkoniyatlari bilan u tizim boshqaruvini soddalashtirishi va samaradorlikni oshirishi mumkin. Uning sintaksisini tushunish va eng yaxshi amaliyotlarga rioya qilish orqali siz odatiy vazifalaringizni samarali avtomatlashtirish uchun cron kuchidan foydalanishingiz mumkin.
Qo'shimcha Cron resurslari
- Unix daemon - Din Uilson