Интерактивные задания, привязанные к этому уроку — выполните в реальной среде Kubernetes и проверьте результат.
terminal
Oqimlarni boshqarish: stdout, stderr va append
Osonbolt+10 XPflagОбязательная
Serverda /root/generator.sh skripti bor: u ham oddiy hisobot (stdout), ham xato xabari (stderr) chiqaradi. Monitoring jamoasi ikkala oqimni alohida fayllarga ajratishingizni so'raydi — darsdagi 3 kanal (stdin/stdout/ stderr) modeli aynan shu yerda ishlaydi. Vazifa Skriptni ishga tushirib faqat stdout ni /root/toza.txt ga yozing (xato xabari ichiga tushmasin). Faqat stderr ni /root/xatolar.txt ga yozing (hisobot tushmasin). Ikkala oqimni birga /root/hammasi.txt ga yozing (2 &1). Skriptni kamida 3 marta ishga tushirib, chiqishini /root/jurnal.txt ga qo'shib boring ( — eski yozuvlar o'chmasin). /root/sonlar.txt faylini kirish yo'naltirish (<) bilan sortga berib, natijani /root/saralangan.txt ga yozing. Muvaffaqiyat mezoni toza.txt'da XATO YO'Q; xatolar.txt'da hisobot YO'Q; hammasi.txt'da ikkalasi BOR jurnal.txt'da kamida 3 ta hisobot qatori saralangan.txt haqiqiy saralangan tartib bilan mos
terminal
Bash: stdout va stderr oqimlarini ajratish
Osonbolt+15 XP
Hisobot quvuri skript chiqishini faylga yig'adi, ogohlantirishlar esa operator ekraniga tushishi kerak — ikki oqim ARALASHMASLIGI shart. Vazifa (/root/sh/script.sh) stdout'ga faqat: disk-report: 82% stderr'ga faqat: warn: threshold yaqin Muvaffaqiyat mezoni (jonli) bash script.sh 2 /dev/null → faqat hisobot qatori bash script.sh 2 &1 /dev/null → faqat ogohlantirish qatori
terminal
Bash: sikl natijasini faylga yo'naltirish
Osonbolt+15 XP
Servislar ro'yxatidan inventar fayli generatsiya qilinadi: har servis svc- prefiksi bilan alohida qatorda. Boshlang'ich holat /root/sh/services.txt — servis nomlari (har qatorda bitta) Vazifa (/root/sh/script.sh) services.txt ni qatorlab o'qib, har nom uchun svc- qatorini yaratsin BUTUN natija /root/sh/inventory.txt fayliga yozilsin (siklning o'zi yo'naltirilsin) Muvaffaqiyat mezoni (jonli) Checker services.txt tarkibini o'zgartirib sinaydi
terminal
Bash: funksiya chiqishini qiymat sifatida olish
Osonbolt+15 XP
Image tegini yasovchi yordamchi funksiya kerak: nom va versiyadan nom:versiya yasab bersin, asosiy oqim natijani o'zgaruvchiga olsin. Vazifa (/root/sh/script.sh) tag funksiyasi: ikki argumentdan : satrini chiqarsin (echo) Asosiy oqim: image=$(tag "$1" "$2") ko'rinishida olib, image= chiqarsin Muvaffaqiyat mezoni (jonli) bash script.sh api 2.4 → image=api:2.4
terminal
Bash: xato-log funksiyasi (stderr intizomi)
Osonbolt+15 XP
Log yordamchilari to'plamida xato xabarlari ALOHIDA oqimga chiqishi shart: stdout ma'lumot uchun, stderr muammolar uchun. Vazifa (/root/sh/script.sh) log error funksiyasi: argumentini [ERROR] shaklida stderr 'ga yozsin Asosiy oqim: log error "disk full" chaqirsin, so'ng stdout'ga done chiqarsin Muvaffaqiyat mezoni (jonli) bash script.sh 2 /dev/null → faqat done bash script.sh 2 &1 /dev/null → faqat [ERROR] disk full
terminal
Bash: /dev/null bilan toza chiqish
Osonbolt+15 XP
Qidiruv skripti fayl umuman bo'lmasa ham TOZA javob berishi kerak — texnik xato matnlari foydalanuvchiga ko'rinmasin. Vazifa (/root/sh/script.sh) Bitta argument: qidirilayotgan satr config.txt ichida grep -q bilan qidirsin; grep'ning xato oqimi /dev/null ga yutilsin Topilsa found, aks holda (fayl yo'q bo'lsa ham) faqat absent chiqsin Muvaffaqiyat mezoni (jonli) Fayl yo'q holatda ham chiqish AYNAN absent (stderr sizmaydi)
terminal
Bash: die() — yagona xato-chiqish yordamchisi
Osonbolt+15 XP
Har xato joyida echo &2; exit 1 juftligini takrorlash o'rniga yagona die funksiyasi bo'lsin — xato intizomi bir joyda. Vazifa (/root/sh/script.sh) die funksiyasi: argumentini fatal: shaklida stderr'ga yozib exit 1 Asosiy oqim: 1-argument fayl mavjud bo'lmasa die "config topilmadi"; mavjud bo'lsa loaded chiqarsin Muvaffaqiyat mezoni (jonli) Yo'q fayl: stderr fatal: config topilmadi, kod 1; bor fayl: loaded