Dan Uscatu wrote:
probabil gindeai "tee" si ai scris "cat".
anyway, problema initiala chiar se rezolva cu -w, nu cu redirect.
doar ca dan nu stia asta.
um... stiam de -w, am zis. in continuare as vrea sa stiu de ce
redirectarea in fisier nu produce nimic. nici in timp ce merge (chiar
dupa multa vreme), nici dupa ce-l omor. am incercat si cu | tee
fisier, nu mai produce nimic nici pe ecran.
ba produce da in 4 kilo chunks. cum e si normal daca nu ai outputu
buffered.
redirectarea ta de fisier va merge daca scrii 1> in loc de > (fortand
astfel buffering). De asemenea daca programul se termina cu SIGTERM nu
cu SIGKILL, se va apela exit care goleste bufferele, deci si asa merge.
mai poti sa folosesti si programe care stiu de unbuffered stream pe
stdin, cum ar fi tcpdump | grep * > lola. e lame, useless use of grep,
da merge.
Tee face 2 lucruri, citeste buffered de pe stdin si scoate unbuffered pe
stdout, deci metoda cu tee e shit, tot tre sa astepti sa-ti vina 4k din
pipe ca sa scoata ceva, din cauza citirii facute de tee din pipe, nu din
cauza lui tcpdump, care saracu face exact ceea ce trebuie sa faca, si
nici a pipe-ului. (pipe-urile create cu | parca erau unbuffered la
ambele capete, deci teoretic delayu e minim, afaik).
Totusi cea mai simpla metoda e sa folosesti (corect) -l a lui tcpdump.
Sau -w (mai bine). sau in caz extrem 1> (ca lameru de mine, care nu a
RTFM inainte sa tcpdump, si acu nu se poate dezbara) (#tcpdump 1> ./data).
Dragos "old habits die hard".
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug