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.
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
.