Keepalived test


Cron bilan vazifalarni rejalashtirish



Yüklə 13,79 Mb.
səhifə66/125
tarix21.08.2023
ölçüsü13,79 Mb.
#140060
1   ...   62   63   64   65   66   67   68   69   ...   125
abdurakhmonov

    Bu səhifədəki naviqasiya:
  • Xulosa

Cron bilan vazifalarni rejalashtirish


Ushbu bobning boshida biz jarayonlarni ishga tushirish va ularning fonda ishlashini ta'minlash va server ishga tushishi bilanoq ishga tushishini ta'minlash orqali ishladik. Ba'zi hollarda, har doim fonda ishlashi uchun emas, balki ma'lum bir vaqtda ishni bajarish uchun ilova kerak bo'lishi mumkin. Bu erda cron keladi. cron bilan siz jarayon, dastur yoki skriptni ma'lum bir vaqtda, daqiqagacha ishlash uchun sozlashingiz mumkin. Har bir foydalanuvchi o'z cron konfiguratsiyasiga ega bo'lishi mumkin ( crontab deb nomlanadi ), bu foydalanuvchi odatdagidek bajara oladigan har qanday funktsiyani bajarishi mumkin. Root foydalanuvchisi ham tizim bo'ylab ma'muriy vazifalarni bajarishga imkon beruvchi crontabga ega. Har bir crontab cron ishlari ro'yxatini (har bir satrda bitta) o'z ichiga oladi, biz ularni qisqa vaqt ichida ko'rib chiqamiz. Foydalanuvchi uchun crontabni ko'rish uchun biz crontab buyrug'idan foydalanishimiz mumkin:
crontab -l
-l opsiyasi bilan crontab buyrug'i sizga buyruqni bajargan foydalanuvchi uchun vazifalar ro'yxatini ko'rsatadi. Agar siz uni root sifatida bajarsangiz, root hisobining crontab yorlig'ini ko'rasiz. Agar siz uni jdoe foydalanuvchisi sifatida bajarsangiz, jdoe uchun crontabni ko'rasiz va hokazo. Agar siz o'zingizdan boshqa foydalanuvchi uchun crontabni ko'rmoqchi bo'lsangiz, -u opsiyasidan foydalanishingiz va foydalanuvchini ko'rsatishingiz mumkin, lekin siz boshqa foydalanuvchi uchun crontabni ko'rish uchun uni root sifatida yoki sudo bilan bajarishingiz kerak bo'ladi. sifatida tizimga kirgansiz:
sudo crontab -u jdoe -l
Odatiy bo'lib, siz bir yoki bir nechta ishni yaratmaguningizcha, hech bir foydalanuvchida crontab yo'q. Shuning uchun, hozirgi foydalanuvchilaringizni tekshirganingizda, ehtimol, quyidagi kabi natijalarni ko'rasiz:
no crontab for jdoe
Cron ishini yaratish uchun avval siz vazifa bajarilishini istagan foydalanuvchi hisobi sifatida tizimga kiring. Keyin quyidagi buyruqni bering:
crontab -e
Agar tizimingizda bir nechta matn muharriri mavjud bo'lsa, quyidagiga o'xshash chiqishni ko'rishingiz mumkin:

7.10-rasm: crontab buyrug'i bilan foydalanish uchun muharrirni tanlash
cron ishingizni yaratishda foydalanmoqchi bo'lgan matn muharririga mos keladigan raqamni bosishingiz kifoya. Tahrirlovchini tanlash va crontabni bitta buyruq bilan tahrirlash uchun quyidagi buyruq aynan shunday qiladi:
EDITOR=vim crontab -e
Ushbu misolda siz vim ni xohlagan matn muharriri bilan almashtirishingiz mumkin. Ushbu nuqtada siz crontab faylingiz ochiq holda matn muharririga joylashtirilishi kerak. Har bir foydalanuvchi uchun standart crontab faylida cron qanday ishlashi haqida foydali ma'lumotlarni taqdim etadigan ba'zi foydali izohlar mavjud. Yangi ish qo'shish uchun siz faylning pastki qismiga o'ting (barcha izohlardan keyin) va yangi qator qo'shing. Formatlash bu erda juda aniq va fayldagi misol sharhlari har bir satr qanday joylashtirilganligi haqida sizga ma'lumot beradi. Xususan, ushbu qism:
mh dom mon dow buyrug'i
Har bir cron ishida oltita maydon mavjud bo'lib, ularning har biri kamida bitta bo'sh joy yoki yorliq bo'shlig'i bilan ajratilgan. Agar siz bir nechta bo'sh joy yoki yorliqdan foydalansangiz, cron faylni to'g'ri tahlil qilish uchun etarlicha aqlli. Birinchi sohada bizda ish bajarilishini istagan daqiqa bor. Ikkinchi maydonda biz soatni 24 soat formatida, 0 dan 23 gacha joylashtiramiz. Uchinchi maydon oyning kunini bildiradi. Ushbu maydonda siz 5 (oyning 5), 23 (oyning 23) va hokazolarni joylashtirishingiz mumkin. To'rtinchi maydon oyga to'g'ri keladi, masalan, mart uchun 3 yoki dekabr uchun 12. Beshinchi maydon haftaning kuni bo'lib, yakshanbadan shanbagacha bo'lgan 0 dan 6 gacha raqamlangan. Nihoyat, oxirgi maydonda bizda bajarilishi kerak bo'lgan buyruq mavjud. Bir necha misol crontab qatorlari quyidagicha:
3 0 * * 4 /usr/local/bin/cleanup.sh
* 0 * * * /usr/bin/apt update
0 1 1 * * /usr/local/bin/run_report.sh
Birinchi misolda, /usr/local/bin da joylashgan cleanup.sh skripti har payshanba kuni soat 12:03 da ishga tushiriladi. Biz buni bilamiz, chunki daqiqa ustuni 3 ga, soat ustuni 0 ga (yarim tun), kun ustuni 4 ga (payshanba) va buyruq ustuni /usr/local/bin/cleanup ning to'liq malakali buyrug'ini ko'rsatadi..sh.
to'liq malakali bo'lishi nimani anglatadi ? Asosan, buyruqning to'liq malakali bo'lishi buyruq uchun mas'ul bo'lgan binary jurnaliga boradigan butun yo'l to'liq yozilganligini anglatadi. Ikkinchi misolda biz shunchaki buyruq uchun apt update ni yozgan bo'lardik va bu juda yaxshi ishlagan bo'lar edi. Biroq, dasturga to'liq yo'lni qo'shmaslik yomon cron etiketi hisoblanadi. Buyruq to'liq malakasiz ishlagan bo'lsa-da, uning muvaffaqiyati ilovani chaqirayotgan foydalanuvchining yo'lida topilishiga bog'liq bo'ladi. Barcha serverlar bir xil sozlanmagan, shuning uchun shell qanday sozlanganiga qarab bu ishlamasligi mumkin. Agar siz to'liq yo'lni qo'shsangiz, ish asosiy qobiq qanday tuzilganidan qat'iy nazar ishlashi kerak.

To'liq malakali buyruq nima ekanligini bilmasangiz, which buyruqni ishlatishingiz kerak. Ushbu buyruq, siz ishlatmoqchi bo'lgan buyruq nomi bilan foydalanilganda, agar buyruq tizimingizda joylashgan bo'lsa, sizga to'liq malakali buyruq beradi.

har kuni ertalab yarim tunda serverimiz ombori indeksini yangilash uchun /usr/bin/apt update-ni ishga tushirmoqdamiz. Har bir satrdagi yulduzcha any ga ishora qiladi, shuning uchun daqiqa ustuni oddiygina * bo'lsa, bu vazifa har qanday daqiqaga mos kelishini anglatadi. Asosan, biz aniqlagan yagona maydon soat maydoni bo'lib, biz soat 12:00 ni ifodalash uchun uni 0 ga qo'ydik.
/usr/local/bin/run_report.sh skriptini har oyning birinchi kuni soat 01:00 da ishga tushiramiz, agar e'tibor bersangiz, uchinchi ustunni ( oy kuni ) 1 ga o'rnatdik, bu 1 fevral, 1 mart va boshqalar bilan bir xil. Bu ish oyning birinchi kuni bo'lsa, lekin joriy vaqt ham 01:00 bo'lsagina bajariladi, chunki biz mos ravishda daqiqa va soatni ifodalovchi birinchi va ikkinchi ustunni to'ldirganmiz.
Siz foydalanuvchining crontab-ni tahrirlashni tugatib, uni saqlaganingizdan so'ng, cron yangilanadi va shu vaqtdan boshlab siz tanlagan vaqtda vazifani bajaradi. Crontab serveringizdagi joriy vaqt va sana bo'yicha bajariladi, shuning uchun siz bu ham to'g'ri ekanligiga ishonch hosil qilishni xohlaysiz, aks holda sizning vazifalaringiz kutilmagan vaqtda bajarilishi mumkin. Siz shunchaki date buyrug'ini berish orqali serveringizda joriy sana va vaqtni ko'rishingiz mumkin.
cron bilan ish o'rinlarini yaratishni o'rganish uchun eng yaxshi usul (har doimgidek) mashq qilishdir. Ikkinchi misol cron ishi, ehtimol, tajriba uchun yaxshidir, chunki sizning omboringiz indeksini yangilash hech narsaga zarar keltirmaydi.

Xulosa


Ushbu bobda biz jarayonlarni qanday boshqarishni bilib oldik. Biz hozirda ishlayotgan jarayonlar ro'yxatini ko'rish uchun foydalanishimiz mumkin bo'lgan ps buyrug'ini ko'rib chiqishdan boshladik. Shuningdek, biz job larni boshqarish, shuningdek, u yoki bu sabablarga ko'ra noto'g'ri ishlayotgan jarayonlarni tugatishni ko'rib chiqdik. Biz, shuningdek, qaysi jarayonlarga ko'proq ishlov berish vaqti berilishini to'liq nazorat qilish uchun jarayonning ustuvorligini o'zgartirish usullarini muhokama qildik, shuningdek, cron yordamida ishlarni qanday qilib keyingi vaqt va sanada ishga tushirishni rejalashtirishimiz mumkinligini bilib oldik.

Yüklə 13,79 Mb.

Dostları ilə paylaş:
1   ...   62   63   64   65   66   67   68   69   ...   125




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin