Hlavní navigace

Hrátky z řádky: pracujeme s logy

Petr Macek

Opět se setkáváme u pravidelné pondělní dávky tipů a triků z černé řádky. V dnešním díle se podíváme na čtení log souborů a hledání v nich, představíme si programy wc, sort, du a na závěr se vrátíme k programu screen, v něm si ukážeme, jak jednoduše rozdělit obrazovku na více pracovních částí.

Dlouho jsem nezmínil manuálové stránky. Je to důležitý zdroj informací. Mnou uváděné tipy využívají jeden nebo dva parametry, ale většina zde uváděných programů jich umí mnohem více. Rozhodně doporučuji si manuály někdy prohlédnout. Když zrovna nesedíte u nějakého Linuxu, můžete třeba využít stránky man.root.cz.

Práce s logy

Na čtení logů můžete používat mnoho programů – cat, more, less, tail, head,… O některých jsme už mluvili. Můj oblíbený less má mnoho funkcí, například umí snadno vyhledávat. Prohlížíme si třeba mailový log less /var/log/maillog. Chci v něm vyhledat například svou e-mailovou adresu. Stačí zadat znak /, napsat požadovaný text a zmáčknout enter. Less označí v celém souboru všechny výskyty hledaného textu a přesune nás na první z nich. Klávesou n se můžeme přesouvat na další výskyty, klávesou N pak můžeme na předchozí. Je to stejný systém, jaký má třeba editor vi. Další možností, jak v logu něco vyhledat, je využití utilitky grep, následující příklad nám vypíše všechny řádky obsahující hledaný text:

$ grep -i text /var/log/maillog

Zopakuji, že parametr -i nám zajistí, že u hledaného textu se nerozlišuje velikost znaků. Parametr -n nám na začátek napíše ještě číslo řádku.

Když chceme v logu jen očíslovat řádky, je pro to určen filtr nl. Zkuste si třeba
$ nl /etc/hosts
I nl má užitečné parametry. Můžete si třeba zvolit, zda číslovat i prázdné řádky, jestli mají být čísla doplněna nulami a podobně. Líbit by se vám mohlo třeba i toto:

$ nl /var/log/maillog | less

Když chcete prohledávat třeba log, který už je zaarchivovaný, není nutné jej nejprve rozbalovat a pak číst třeba lessem. K tomu je určený zless. Většinou to není binárka, například ve FreeBSD je řešen jednoduchým skriptem, který spouští klasický less, a díky tomu můžeme i v něm snadno vyhledávat výše popsanou kombinací. Ukázka:
  $ zless /var/log/maillog.0.bzip2

Za další tip musím poděkovat jednomu čtenáři, který utilitku ccze zmínil v diskuzi. Pokud se vám log zdá nepřehledný, existuje několik programů, které vám barevně rozliší text. My si ukážeme utilitku ccze. Nebývá součástí systému, většinou si ji budete muset přiinstalovat. Ale může se hodit, zkuste si třeba:

$ tail -n40 /var/log/maillog | ccze

Když máme log plný něčeho, co nás nezajímá, využijeme opět grep. Příkazem grep -v slovo /var/log/maillog zobrazíme všechny řádky neobsahující hledané slovo. Velkou funkcionalitu získáme spojením dvou grepů:

$ grep -i novak.cz /var/log/maillog | grep -v jarda

Tímto najdeme záznamy obsahující název domény novak.cz, ale vynecháme vše obsahující slovo jarda.

Lehce k programům wc, sort a du

Další program, který si ukážeme, je wc. Slouží nám k počítání všeho možného – znaků, slov, řádků. Pokud nás zajímá počet řádků v souborech, není nic snažšího než:

$ wc -l /etc/*

Tento příkaz nám vypíše názvy souborů v /etc  a u nich počet řádků. Parametrem -m můžeme spočíst znaky, zajímavý je ještě parametr -w, který zajistí počítání slov. Další informace naleznete v man wc.

Další utilitkou je sort. Je to filtr, který nám dle zadaného kritéria setřídí hodnoty. Pokud chcete třeba setřídit řádky souboru podle abecedy, zkuste:

$ sort /etc/rc.conf

Pro nás teď bude důležitý parametr -n díky němuž setřídíme data ne textově, ale numericky. Praktickým příkladem je třeba výpis podadresářů setříděný podle velikosti sestupně. Docílíme toho spojením příkazu du a sortu. Du nám samo o sobě říká údaje v počtu 512 bytových bloků. Ale pro hezčí výpis jde použít i -k  pro kilobajty a -m pro megabajty, já mám rád parametr -h (human readable). Malá ukázka:

root@minastirith pm # du -sk /var/* | sort -rn
41896   /var/db
37524   /var/log
16394   /var/mail
3472    /var/tmp
518     /var/spool
47      /var/named
44      /var/run
22      /var/yp
14      /var/backups
6       /var/cron

Screen – rozdělení obrazovky

O screenu  už se zde mluvilo a odkazoval jsem na náš starší článek, v kterém bylo zmíněna možnost rozdělení obrazovky.

Rozdeleny screen

Rozdělíme si obrazovku na poloviny a v každé si pustíme nějaký monitorovací nástroj – iftop a top. Spustíme si screen, v něm třeba iftop na nějakou síťovou kartu:

$ screen
$ iftop -i fxp0

Zmáčkneme ctrl + a následované velkým písmenem S. Obrazovka se nám rozdělí. Kombinací ctrl + a následované klávesou tab. Tím se přepneme do zatím prázdného okna. Stiskem ctrl + a následovanou klávesou c spustíme nové okno. V něm už jen spustíme příkaz top. Přepínání mezi okny se provádí pomocictrl + a následované tab. Pomocí exit pak jednotlivá okna ukončujeme. Pro podobné rozdělení obrazu se dá použít i utilitka window.

Našli jste v článku chybu?

4. 2. 2008 13:26

To co pises je vsechno pravda. Clanek je skutecne hooodne jednoduchy. Ale kdyz si najde ctenare o ktere root stoji, tak je tady opravnene.

Ja jsem jeden z nich. Svuj volny cas travim radsi nejak hodnotne (spolecenske styky, sport..., abych nedopadl jako traged BLACK.) a ne ctenim manualu. Proto si prectu misto manualu tento clanek, kde nekdo jiny z mnoha ruznych opsen nejakeho prikazu vybral jen ty nejzajimavejsi.

4. 2. 2008 1:27

Robertek (neregistrovaný)
Nemůžu si pomoct ale tyto články jsou naprosto skvělé. Sice jsem si už pročet nějaké diskuze u těchto článků a setkal jsem se s názory že je to k ničemu, zbytečné apod. Tak za sebe mohu konstatovat že NE!!! Pokud toto někomu připadá zbytečné tak ať sem prosím pošle odkaz na web kde se tyto věci dozvím se stejnou jednoduchostí jako zde.
Dokonce bych se přimlouval za vytvoření specielní sekce pro tuto serii nebo nějakou jinou možnost kde by měl uživatel přehledně přístupně všechny články série. …
120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

Root.cz: Nová třída SD karet A1 s vysokým výkonem

Nová třída SD karet A1 s vysokým výkonem

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

DigiZone.cz: SES zajistí HD pro M7 Group

SES zajistí HD pro M7 Group

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Ohrozí Freedom TV přechodové sítě?

Ohrozí Freedom TV přechodové sítě?

Vitalia.cz: Nejlepší obranou při nachlazení je útok

Nejlepší obranou při nachlazení je útok

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jak vybrat ořechy do cukroví a kde mají levné

Jak vybrat ořechy do cukroví a kde mají levné

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1