NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
SK

Linuxové príkazy

awk: Keď sa stĺpce stanú programami

awk je to, po čom siahnete, keď sa stĺpce stanú jednotkou práce: protokoly prístupu nginx, /etc/passwd, výstup df, čokoľvek, čo žije v poliach. Je to kompletný jazyk (premenné, polia, aritmetika, pravidlá vzorových akcií) v jednovrstvovom oblečení, čo je presne ten správny prevlek pre kriminalistiku. Úprimná hranica: všetko, čo awk robí pohodlne, je jednoradové a všetko, čo potrebuje stránku blokov, je skript Python, ktorý sa ešte nepriznal.

Kľúčové body

  1. Rozdelenie polí je základný trik: awk -F: '$3 >= 1000 {print $1}' /etc/passwd uvádza skutočných používateľov a -F'[,|]' spracováva viacznakové oddeľovače, keď sa strih už vzdal.
  2. Počítajte s asociatívnymi poľami: awk '{count[$1]++} END {for (c in count) print count[c], c}' /var/log/secure premení ľubovoľný protokol na tabuľku frekvencií v jednom riadku.
  3. Otázky týkajúce sa súboru odpovedí NR a NF: 'NR==1' je riadok hlavičky, '{print NF}' počíta stĺpce na riadok a porovnanie NR s uloženými hodnotami iného súboru nájde duplikáty a medzery.
  4. Match plus extrakt je každodenným chlebom: awk '/ 500 / {print $7, $9}' access.log stiahne chybové stránky s URL a OFS vám umožní znova vytlačiť $0 po úprave jedného poľa bez prepisovania riadku.
  5. Bloky BEGIN a END sú miestom, kde žije súhrnná práca: BEGIN nastavuje oddeľovače, stredné pravidlá bežia na riadok, END tlačí súčty; tri bloky sa čítajú dobre, päť je maskovaný scenár.
  6. Citovanie je skutočný nepriateľ shell one-liner: jednoduché úvodzovky programu, dvojité úvodzovky literály v ňom, a pamätajte, že $ 7 v dvojitých úvodzovkách shell reťazec nikdy nedosiahne awk.
  7. Číselná práca dostane LC_ALL=C: čiarky miestneho nastavenia v číslach a nepárne porovnania otočia porovnávanie a triedenie na stranu a pripnutie miestneho nastavenia je jeden riadok, ktorý šetrí popoludnie.
  8. Poznajte strop: úvodzovky v CSV, vnorený JSON alebo stavové viacriadkové formáty idú do Pythonu; awk je skalpel a zostane ním.

Poznámka z teréna

Nešikovný jednoduchý riadok, ktorý zrátal stĺpce v dolároch z denníka s čiarkami miestneho nastavenia, vytvoril čísla, ktoré nikto nespochybnil, kým účtovníctvo neotvorilo správu. LC_ALL=C sa ten týždeň presťahoval do našej knižnice aliasov a zostal.

Často kladené otázky

awk alebo cut pre stĺpcovú prácu?

strih na jeden pevný oddeľovač a zoznam obyčajných stĺpcov; awk v momente, keď sa objavia podmienky, regulárny výraz, aritmetika alebo agregáty, v tomto bode je rez aj tak mimo svojej hĺbky.

Ako spočítam alebo spriemerujem stĺpec?

Aggregate in END: awk '{s += $5} END {print s, s/NR}' pridá a spriemeruje pole päť cez riadky; Ak miestne nastavenie vkladá do čísel čiarky, najskôr odstráňte oddeľovače tisícov.

Prečo sa môj awk one-liner správa inak v systéme macOS?

macOS dodáva POSIX awk bez rozšírení GNU ako -i inplace alebo gensub; skripty, ktoré bežia na Linuxe, tam môžu potichu zlyhať, takže si ponechajte jednoduché riadky v tvare POSIX alebo noste so sebou gawk.

Dokáže awk analyzovať JSON?

Nie je to zmysluplné: JSON nemá žiadnu stĺpcovú štruktúru, ktorej awk rozumie a hacky regulárnych výrazov prerušujú vnorené objekty. Keď úloha rastie, použite jq, čo je tvar awk pre JSON, alebo modul json Pythonu.

Ako Kinetikatech pomáha s linuxové príkazy

To je to, čo robíme každý deň: Príkazy a skriptovacie návyky, ktoré rozhodujú o tom, či správca prevádzkuje server alebo s ním bojuje: vyhľadávajte, transformujte, prenášajte a dohliadajte na text a procesy pomocou nástrojov, ktoré sú súčasťou každej základnej inštalácie. Naša služba Bezpečnosť Linuxových serverov a Správa serverov pokrýva všetko od hodnotenia po implementáciu, monitoring 24/7 a núdzovú reakciu do 30 minút.

Pozrite sa s inžinierom

Problém so serverom? Napadený web? Pomalé načítanie?

Kritické problémy vyriešime v 30 minútach — nonstop, 7 dní v týždni.

Požiadať o núdzovú podporu support@kinetikatech.com