Tail: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Cliebert (talk | contribs)
 
Cliebert (talk | contribs)
No edit summary
Line 1: Line 1:
Chris Liebert A22
= Sissejuhatus =
<tt>tail</tt> on programm UNIX’i ja UNIX’i laadsetes süsteemides, mis kopeerib standardväljundisse ehk arvuti ekraanile failist n ''(n > 0)'' viimast rida. Vaikimisi väljastatakse 10 viimast rida.


= Süntaks ja parameetrid=
<tt>tail</tt> käsu süntaks on :<br>


<tt>tail [parameeter] [fail]</tt>
Parameetrid võimaldavad vastavalt soovile muuta vaikimisi väljastatavate ridade arvu või prinditavat üksust. Printida on võimalik peamiselt ridade või baitide kaupa. Samuti on mitmeid teisi parameetreid, millest mõnda järgnevalt lähemalt vaatamegi.
''Näidisfailidena on kasutatud fail1’te ja file2’te. Näited on testitud Ubuntu Server 12.04.1 LTS operatsioonisüsteemil, kui ei ole teisiti öeldud.''
<b>-n väljastamine ridade kaupa</b>
Viimase 15 rea kopeerimine standardväljundisse:
<tt>tail –n 15 fail1</tt>
Kuigi vaikimisi väljastab tail failist n viimast rida on võimalik ka printida alates n-ndast reast. Selleks  tuleb soovitud ridade arvu ette lisada + märk.
Failist alates 15 reast väljastamine:
<tt>tail –n +15 fail1</tt>
<b>-c väljastamine baitide kaupa</b>
Viimase 25 baidi kopeerimine standardväljundisse:
<tt>tail –c 25 fail1</tt>
 
Sarnaselt ridade kaupa väljastaminsele on ka siin võimalik kasutada + märki ja väljastada alates n-ndast baidist.
Failist alates 25 baidist väljastamine:
<tt>tail –c +25 fail1</tt>
<b>-b väljastamine 512-baidiste blokkide kaupa</b>
See parameeter küll ei kuulu enam POSIX.1-2008 versioonis standartide hulka, aga kuna mõnes UNIX’i realisatsioonis võib see veel toimida, olen selle ka siinkohal ära maininud. ''(Minu versioon seda ei toeta, seega on näide testimata.)'' Samuti sarnaselt eelnevatele parameetritele on toetatud ka alates n-dast blokist väljastamine.
Viimase 2 512-baidi suurusega bloki väljastamine:
<tt>tail –b 2 fail1</tt>
<b>tail enam kui 1 faili puhul</b>
<tt>tail</tt> on suuteline väljastama andmeid korraga ka mitmest failist. Kuid sellisel juhul lisatakse vaikimisi iga faili ette päis selle faili nimega. Päis on kujul <tt>==> XXX <==</tt>, kus <tt>XXX</tt> tähistab faili nime.
Kahest failist viimase 5 rea väljastamine:
<tt>tail –n 5 fail1 fail2</tt>
<b>-v väljastab alati päised faili nimega</b>
See parameeter võimaldab ka ühe faili korral sellenimelise päise väljastada.
Failist väljastamine alates 5. baidist koos sellenimelise päisega:
<tt>tail –c +5 –v  fail1</tt>
<b>-q faili päisete keelamine</b>
Kuna mitme faili puhul väljastab <tt>tail</tt> vaikimisi iga faili ees ka päise, siis mõnikord võib tekkida vajadus neid mitte kuvada. Just seda see parameeter võimaldabki.
Kahest failist nende viimase 5 rea väljastamine koos failide päistega:
<tt>tail –n 5 –q fail1 fail2</tt>
= Failide monitooring =
<b>-f</b>
<tt>tail</tt> on heaks abimeheks kui tahame näha failidesse viimati lisatud ridu. Kuid parameeter <tt>–f</tt> teeb sellest veel parema tööriista. Kui muidu väljastab <tt>tail</tt> soovitud andmed ja lõpetab töö, siis seda parameetrit kasutades väljastab <tt>tail</tt> soovitud andmed ja jätkab failist „lugemist”. Kui mõni teine protsess lisab faili uusi ridu, siis tail kuvab need standardväljundisse. Mis võib osutuda väga kasulikuks näiteks logifailide monitoorimisel.
Viimase 10 rea väljastamine ning uute ridade lisandumisel nende väljastamine standardväljundisse:
<tt>tail –f /var/log/syslog</tt>
<b>-F</b>
Juhul kui tegemist on sellise failiga, mida aegajalt ümbernimetatakse ''(file rotation)'', siis on mõistlik <tt>–f</tt> parameetri asemel kasutada parameetrit <tt>–F</tt>. See kindlustab selle, et <tt>tail</tt> jätkab faili monitoorimist ka siis kui see luuakse uuesti või muudetakse faili nime. Näiteks:
<tt>tail –F /var/log/syslog</tt>
<tt>tail</tt>i monitooringu saab katkestada kasutades klahvikombinatsiooni Ctrl+C.
= Kokkuvõte =
...
= Allikad =
http://en.wikipedia.org/wiki/Tail_%28Unix%29
http://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html
http://pubs.opengroup.org/onlinepubs/9699919799/
http://www.freebsd.org/cgi/man.cgi?query=tail&apropos=0&sektion=0&manpath=FreeBSD+5.3-RELEASE+and+Ports&format=html
http://linux.about.com/cs/linux101/g/logfilerotation.htm
= Autor =
Chris Liebert A22 (õppeaasta 2012/2013).
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Revision as of 19:23, 2 December 2012

Sissejuhatus

tail on programm UNIX’i ja UNIX’i laadsetes süsteemides, mis kopeerib standardväljundisse ehk arvuti ekraanile failist n (n > 0) viimast rida. Vaikimisi väljastatakse 10 viimast rida.

Süntaks ja parameetrid

tail käsu süntaks on :

tail [parameeter] [fail]

Parameetrid võimaldavad vastavalt soovile muuta vaikimisi väljastatavate ridade arvu või prinditavat üksust. Printida on võimalik peamiselt ridade või baitide kaupa. Samuti on mitmeid teisi parameetreid, millest mõnda järgnevalt lähemalt vaatamegi.

Näidisfailidena on kasutatud fail1’te ja file2’te. Näited on testitud Ubuntu Server 12.04.1 LTS operatsioonisüsteemil, kui ei ole teisiti öeldud.

-n väljastamine ridade kaupa

Viimase 15 rea kopeerimine standardväljundisse:

tail –n 15 fail1

Kuigi vaikimisi väljastab tail failist n viimast rida on võimalik ka printida alates n-ndast reast. Selleks tuleb soovitud ridade arvu ette lisada + märk.

Failist alates 15 reast väljastamine:

tail –n +15 fail1

-c väljastamine baitide kaupa

Viimase 25 baidi kopeerimine standardväljundisse:

tail –c 25 fail1
 

Sarnaselt ridade kaupa väljastaminsele on ka siin võimalik kasutada + märki ja väljastada alates n-ndast baidist.

Failist alates 25 baidist väljastamine:

tail –c +25 fail1

-b väljastamine 512-baidiste blokkide kaupa

See parameeter küll ei kuulu enam POSIX.1-2008 versioonis standartide hulka, aga kuna mõnes UNIX’i realisatsioonis võib see veel toimida, olen selle ka siinkohal ära maininud. (Minu versioon seda ei toeta, seega on näide testimata.) Samuti sarnaselt eelnevatele parameetritele on toetatud ka alates n-dast blokist väljastamine.

Viimase 2 512-baidi suurusega bloki väljastamine:

tail –b 2 fail1

tail enam kui 1 faili puhul

tail on suuteline väljastama andmeid korraga ka mitmest failist. Kuid sellisel juhul lisatakse vaikimisi iga faili ette päis selle faili nimega. Päis on kujul ==> XXX <==, kus XXX tähistab faili nime.

Kahest failist viimase 5 rea väljastamine:

tail –n 5 fail1 fail2

-v väljastab alati päised faili nimega

See parameeter võimaldab ka ühe faili korral sellenimelise päise väljastada.

Failist väljastamine alates 5. baidist koos sellenimelise päisega:

tail –c +5 –v  fail1

-q faili päisete keelamine

Kuna mitme faili puhul väljastab tail vaikimisi iga faili ees ka päise, siis mõnikord võib tekkida vajadus neid mitte kuvada. Just seda see parameeter võimaldabki.

Kahest failist nende viimase 5 rea väljastamine koos failide päistega:

tail –n 5 –q fail1 fail2

Failide monitooring

-f

tail on heaks abimeheks kui tahame näha failidesse viimati lisatud ridu. Kuid parameeter –f teeb sellest veel parema tööriista. Kui muidu väljastab tail soovitud andmed ja lõpetab töö, siis seda parameetrit kasutades väljastab tail soovitud andmed ja jätkab failist „lugemist”. Kui mõni teine protsess lisab faili uusi ridu, siis tail kuvab need standardväljundisse. Mis võib osutuda väga kasulikuks näiteks logifailide monitoorimisel.

Viimase 10 rea väljastamine ning uute ridade lisandumisel nende väljastamine standardväljundisse:

tail –f /var/log/syslog

-F

Juhul kui tegemist on sellise failiga, mida aegajalt ümbernimetatakse (file rotation), siis on mõistlik –f parameetri asemel kasutada parameetrit –F. See kindlustab selle, et tail jätkab faili monitoorimist ka siis kui see luuakse uuesti või muudetakse faili nime. Näiteks:

tail –F /var/log/syslog

taili monitooringu saab katkestada kasutades klahvikombinatsiooni Ctrl+C.

Kokkuvõte

...

Allikad

http://en.wikipedia.org/wiki/Tail_%28Unix%29 http://www.gnu.org/software/coreutils/manual/html_node/tail-invocation.html http://pubs.opengroup.org/onlinepubs/9699919799/ http://www.freebsd.org/cgi/man.cgi?query=tail&apropos=0&sektion=0&manpath=FreeBSD+5.3-RELEASE+and+Ports&format=html http://linux.about.com/cs/linux101/g/logfilerotation.htm

Autor

Chris Liebert A22 (õppeaasta 2012/2013).