Jak odstranit bufferovani vystupu v shellu?

Karel Salavec karels na pc163.gr.ph.ct.cz
Pondělí Červen 23 14:23:03 CEST 2003


Zdravim!

Mam tu problemek, na kterem si lamu zbytky zubu :-(

Mejme program (closed source), ktery posila nejaka data do souboru. 
Potreboval bych z techto dat _kontinualne_ vytahovat nektere hodnoty. Na 
zpozdeni (v radu minut) az tak moc nezalezi, takze jsem se rozhodl jt cestou 
nejmensiho odporu a naskriptovat to v shellu. Vytvoril jsem primitovni 
konstrukci

tail -f vystup_programu | grep zajimava_hodnota

Takhle to funguje krasne a presne dle ocekavani. Druhy krok je presmerovani 
do souboru, ktery si budu "ocuchavat" dalsim skriptem (a pripadne spustet 
nejakou akci). Takze

tail -f vystup_programu | grep zajimava_hodnota > kontrolovany_soubor

A ted nastava problem: Vystup do souboru je bufferovany, takze v obdobi 
slabsiho provozu by mohlo dojit i k nekolikahodinovemu zpozdeni mezi vyskytem 
zajimave hodnoty a jejim projevenim v kontrolovanem souboru.
Hledal jsem ve vsech moznych manech, googlil jak vztekly, ale jak odstranit 
bufferovani (v shellu), pripadne jak prislusny buffer flushnout na disk(opet 
s shellu) jsem nenasel :-(

Jeste bych si dovolil podotknout, ze na one masince nesmi byt gcc, protoze 
bezpecaci ...

Dekuji za nakopnuti

Karel 




Další informace o konferenci Linux