CMD Master
Zpět na blog
Arnošt Havelka

Premium: Praxe skriptů Bash

Kombinujte proměnné, funkce, smyčky a podmínky, aby se vyřešil realistický vícestavový scénář.

Spustit interaktivní lekci
Premium: Praxe skriptů Bash

Nyní kombinujte vše: proměnné, funkce, smyčky a podmínky, aby se vytvořil skript pro skutečnou automatizaci.

Krok 1: Vybudujte fundament

Terminál
~$mkdir -p backups for i in 1 2 3; do echo "Log entry $i" > backups/log_$i.txt; done ls backups

Vytvořte více souborů se smyčkou. Každá iterace napíše nový soubor.

Krok 2: Analyzujte výsledky

Terminál
~$cat backups/*.txt

Použijte glob vzory ke zpracování všech souborů najednou.

Krok 3: Extrahujte a počítejte

Terminál
~$cat backups/*.txt | grep -c 'Log entry'

Kombinujte kanály a příkazy, abyste získali smysluplné statistiky z vašich dat.

Scénář v reálném světě

Spravujete 10 mikroslužeb. Každá vygeneruje log nasazení. Vytvořte skript, který:

  1. Vytvoří adresář záloh se všemi aktuálními protokoly.
  2. Filtruje chybové řádky.
  3. Počítá celkové chyby ve všech službách.
printf '%s\n' 'INFO deploy started' 'ERROR health check failed' > web.log
printf '%s\n' 'INFO deploy complete' > api.log

function zkontrolovat_nasazeni {
  mkdir -p zalohni_nasazeni
  for sluzba in web api cache queue worker db; do
    if [ -f "$sluzba.log" ]; then
      cp "$sluzba.log" zalohni_nasazeni/
      chyba_pocet=$(grep -c 'ERROR' "zalohni_nasazeni/$sluzba.log")
      echo "Služba $sluzba má $chyba_pocet chyb"
    fi
  done
}

zkontrolovat_nasazeni

Seznam, který můžete znovu použít

  1. Iterujte s for var in seznam; do ...; done.
  2. Testujte podmínky s if [ test ]; then ...; fi.
  3. Zachyťte výstup s $(příkaz).
  4. Zpracujte soubory s cat *.ext | grep | wc -l.
  5. Organizujte s funkcemi, které seskupují související úkoly.

Kontrola znalostí

1 / 2

Jak spustíte příkaz a uložíte jeho výsledek do proměnné?

Reference

Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.

Další

Premium: Bash Log Hunt

Selhání nasazení rychle lovíte pomocí kanálů grep, počtů a uložených poznámek k incidentům.