cat vs tail -f

Jiri Polacek

cat vs tail -f
« kdy: 24. 02. 2016, 14:51:17 »
Ahoj,

tento prikaz me funguje:

cat /var/log/messages | sed -f mac2client | grep LM02

tento prikaz me nefunguje a nevim proc - nic nevypisuje:

tail -f /var/log/messages | sed -f mac2client | grep LM02

v souboru mac2client mam seznam mac adres a prislusnych hostnames napr:

s/08:60:6e:3b:df:93/LM01/

Poradite me co je pricinou?

Diky


Re:cat vs tail -f
« Odpověď #1 kdy: 24. 02. 2016, 15:01:43 »
Zatímco cat vysype na výstup celý soubor, tail -f vrací jen to, co bylo za jeho běhu do souboru přidáno. Pokud se do souboru nic nepřidává, tak na výstupu toho tailu nebude nikdy nic. On se hodí ve chvíli, kdy je potřeba třeba hlídat nově příchozí hlášky do logu. Ty staré ale nikdy neukáže.

Jiri Polacek

Re:cat vs tail -f
« Odpověď #2 kdy: 24. 02. 2016, 15:20:16 »
Ahoj,

diky za odpověď, tomu rozdilu mezi tail -f a cat rozumim

Jedna se mi o to ze pokud dam
tail -f /var/log/messages | sed -f mac2client | grep LM02

nezobrazi se zadny do logu pribyvajici záznamy, nezobrazi se nic, presto ze záznamy do logu pribyvaji

Ještě bych chtěl poznamenat ze tyto varianty bez grepu na konci funguji obe podle ocekavani:

tail -f /var/log/messages | sed -f mac2client
cat /var/log/messages | sed -f mac2client

Tato varianta funguje taky podle ocekavani

cat /var/log/messages | sed -f mac2client | grep LM02

Pouze toto nedela nic

tail -f /var/log/messages | sed -f mac2client | grep LM02

Linux cz01cent01.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Diky

kukacka

Re:cat vs tail -f
« Odpověď #3 kdy: 24. 02. 2016, 15:59:34 »
Pravdepodobne se ti bufferuje ten sed, je to standardni chovani, pokud nevypisuje na terminal. Da se to vypnout, lepe receno nastavovat, nejjednodussi by konkretne v tomto pripade bylo nacpat tu filtraci uz do sedu.

Jiri Polacek

Re:cat vs tail -f
« Odpověď #4 kdy: 24. 02. 2016, 17:34:06 »
po vypnuti bufferovani je to ok ;-)

tail -f /var/log/messages | sed -uf mac2client | grep LM02

Diky