Keepalived test


Kirish va chiqish oqimlari



Yüklə 13,79 Mb.
səhifə49/125
tarix21.08.2023
ölçüsü13,79 Mb.
#140060
1   ...   45   46   47   48   49   50   51   52   ...   125
abdurakhmonov

Kirish va chiqish oqimlari


Hozirgacha Ubuntu serveriga qilgan sayohatimiz davomida biz terminalda biroz ishladik. Biz fayllar tarkibini tekshirish, fayllarga matn kiritish va boshqalarni amalga oshira oldik. Biz o'zimiz bilmagan holda butun vaqt davomida oqimlar bilan ishladik. Ushbu bo'limda biz ushbu mavzu haqida batafsilroq gaplashamiz.
Agar siz umuman informatika fanini o'rgangan bo'lsangiz, ehtimol siz outputkompyuterdan chop etiladigan narsalarga (masalan, matn ekranga yoki printerdan qog'ozga) va input ma'lumotlarga tegishli ekanligini allaqachon bilasiz. Bu buyruq satrida, faylga yoki shunga o'xshash bo'lsin, kompyuterga kiritilmoqda.
Linux bu kontseptsiyani biroz oldinga olib boradi. Linuxdagi oqimlar kiruvchi yoki chiqayotgan narsalarni boshqarishning maxsus usuliga ishora qiladi va kirish va chiqish oqimlaridan tashqari, bizda xatolarga ishora qiluvchi uchinchisi ham bor.
standart outputdeb ataladi va kirish oqimlari standart inputdeb ataladi. Bular mos ravishda stdout va stdin sifatida qisqartiriladi. Kirish/chiqarishning oddiy kontseptsiyasining o'ziga xos kontseptsiyaga kengayishi sababi, Linux qobig'ida biz ushbu oqimlarni boshqacha boshqarishimiz va ular bilan turli vazifalarni bajarishimiz mumkin.
Biz hozirgacha butun kitob davomida standart chiqish bilan ishladik. Terminalga chop etilgan hamma narsa standart chiqishdir. Masalan, sudo apt install vim-nox buyrug'ini ilgari ishga tushirganingizda, ushbu buyruqning natijalari (to'plamni o'rnatish holatini ko'rsatadigan matn oqimi) standart chiqdi. /var/log/ syslog tarkibini ekranga tashlash uchun cat / var/log/ syslog buyrug'idan foydalanganda, ko'rsatiladigan tarkib standart chiqishdir. Hozirgacha standart chiqish siz eng ko'p ishlaydigan narsadir.
Standart chiqish kontseptsiyasini yaxshiroq tushunish uchun qayta yo'naltirishni ko'rib chiqaylik. Quyidagi buyruq misoldir:
cat /var/log/syslog > ~/logfile.txt
/var/log/syslog tarkibini ko'rsatish uchun cat dan foydalanamiz. Lekin ekranda shunchaki tarkibni ko'rsatish o'rniga biz standart chiqishni ~/logfile.txt fayliga yo'naltirish uchun > belgisidan foydalanamiz. Bu shuni anglatadiki, standart chiqish (fayl mazmunini ko'rsatuvchi) umuman ko'rsatilmaydi, chunki biz uni faylga yo'naltirdik. Xuddi shunday, biz ham yugurishimiz mumkin edi:
cat /var/log/syslog 1> ~/logfile.txt

E'tibor bering, men kattaroq belgidan oldin 1 qo'shdim. Standart chiqish 1 fayl deskriptori bilan belgilanadi. Shunday qilib, bu buyruq bilan men standart chiqishni va faqat standart chiqishni faylga qayta yo'naltirishni xohlayotganimni aytmoqchiman. Standart chiqish nazarda tutilgan, shuning uchun men 1 ni kiritishim shart emas edi. Shuning uchun oddiygina kattaroq belgisidan foydalanish standart chiqishni faylga yo'naltirish uchun ishlaydi.
ustiga yozish oʻrniga qoʻshish uchun ikkita kattaroq belgidan ( >> ) foydalanishingiz mumkin. Masalan, quyidagi buyruq butun faylni qayta yozishdan ko'ra, syslog faylining mazmunini logfile.txt faylining oxiri: cat /var/log/syslog >> ~/logfile.txt
Standart kiritishda fayl deskriptori ham mavjud, u 0. Standart kiritish buyruqlar maʼlumotlarni qabul qilish usulidir. Asosan, foydalanuvchi ma'lumotlarini qabul qiladigan buyruqlar buni stdin ni qabul qilish orqali amalga oshiradi. Standart kiritishni misolda ko'rsatish biroz qiyinroq, ammo quyidagi ishlaydi:
cat /var/log/syslog | grep -i
/var/log/syslog faylining mazmunini ushlayman va uni grep buyrug'iga o'tkazaman, bu menga faqat ma'lum bir atamani o'z ichiga olgan qatorlarni ko'rsatishga imkon beradi. Ikkita syslog fayli bir xil bo'lmaydi, chunki har bir server o'ziga xos tarzda sozlanishi mumkin. Ammo, agar siz ma'lum bir dastur yoki xizmatni tekshirishga harakat qilmoqchi bo'lsangiz, o'zingizga mos keladigan kalit so'zlar uchun jurnalga murojaat qilishingiz mumkin. Agar siz -i opsiyasini qo'shsangiz, grep katta-kichik harflarga sezgir bo'lmagan qidiruvni amalga oshiradi. Bu misolda cat buyrug'ining chiqishi grep buyrug'iga standart kirishga aylanadi. Ushbu buyruq siz tanlagan istalgan qidiruv so'zi bilan bajarilishi mumkin.
Men ham yugurishim mumkin edi:
cat < /var/log/syslog | grep Network
/var/log/syslog tarkibini cat buyrug'iga standart kiritish uchun qayta yo'naltirish uchun less-than (<) belgidan foydalanmoqdaman. cat buyrug'i odatda ekranga berilgan har qanday matnni standart chiqish sifatida chop etadi, lekin buning o'rniga men quvur belgisini ishlataman, |, bu chiqishni olish va uni grep buyrug'iga standart kirish sifatida ishlatish uchun.
Bu kontseptsiya boshida biroz chalkash bo'lishi mumkin, lekin agar siz uni mashq qilishni davom ettirsangiz, bu albatta mantiqiy bo'ladi. Keling, yana bir misolni ko'rib chiqaylik, shuning uchun standart xatoni ( stderr ) ham tushunishimiz mumkin:
find / -name "syslog"
Find buyrug'i muayyan mezonlarga mos keladigan fayllarni topishga imkon beradi, masalan, ushbu misolda syslog deb nomlangan fayllarni qidirish. Bu erda biz butun fayl tizimini qidirmoqdamiz, chunki biz qidiruvni boshlash uchun / dan foydalandik. Muammo shundaki, menda fayl tizimidagi barcha fayllarni o'qish uchun ruxsat yo'q va men sudo dan foydalanmadim. Bu ekranga chop etishda bir nechta xatolarga olib keladi, masalan:
find: '/var/lib/netdata/health': Permission denied find: '/var/lib/netdata/registry': Permission denied find: '/var/lib/netdata/cloud.d': Permission denied find: '/var/lib/udisks2': Permission denied
Find buyrug'i butun fayl tizimini, shu jumladan men qidirishga ruxsatim bo'lmagan joylarni qidirish uchun ishlatilganligi sababli, terminalimiz xatolarga to'la bo'ladi. Ushbu xatolar fayl deskriptori 2 bo'lgan standart xato yordamida ko'rsatiladi. Agar biz ushbu xatolarni yashirmoqchi bo'lsak, buni qilishimiz mumkin:
find / -name "syslog" 2> /dev/null
Ushbu buyruq bilan biz uni ishga tushirganimizda hech qanday xato ko'rinmaydi. Buning sababi, biz tarjimonga standart xatoni qo'lga kiritish va uni /dev/null ga yo'naltirishni buyurdik. / dev/null - bu narsalar abadiy yo'qolib ketadigan maxsus qurilma. Agar biror narsani u erga ko'chirsangiz yoki yo'naltirsangiz, u samarali tarzda o'chiriladi. Standart xato fayl deskriptori 2 ga teng bo‘lganligi sababli, biz uni more-than (>) belgisi bilan birlashtirib 2> shaklini hosil qildik, bu asosan qobiqqa qayta yo‘naltirishni amalga oshirishni buyuradi, lekin faqat standart xatoni qayta yo‘naltirish va standart chiqishni yolg‘iz qoldirish. Shuningdek, biz bitta buyruq ichida bir nechta oqimlarni turli joylarga yo'naltirishni tanlashimiz mumkin:
find / -name "syslog" 1> stdout.txt 2> stderr.txt
Ushbu o'zgarish bilan men muvaffaqiyatli chiqishni stdout.txt ga va xatolarni stderr.txt ga yo'naltiryapman. Bu bizga muvaffaqiyatli va muvaffaqiyatsiz xabarlar qaerda chop etilishini to'liq nazorat qilish imkonini beradi. Bu bizga muammolarni bartaraf etishda ham yordam beradi, chunki biz faqat xatolarga e'tibor qaratishni xohlashimiz mumkin va muvaffaqiyatli natijadan xalos bo'lish biz ko'rib chiqishimiz kerak bo'lgan qatorlar sonini qisqartirishi mumkin.
Men sizga bu kontseptsiyani iloji boricha davom ettirishingizni tavsiya qilaman; Bu, albatta, siz xotiraga bag'ishlamoqchi bo'lgan narsadir. Hozirda bu kontseptsiyani o'zlashtirishingiz shart emas, lekin asoslarni bilish ajoyib poydevor bo'ladi.

Yüklə 13,79 Mb.

Dostları ilə paylaş:
1   ...   45   46   47   48   49   50   51   52   ...   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