Logfigyelő bash script

Sziasztok,

szeretnék egy olyan scriptet írni, ami folyamatosan monitorozza egy szöveges fájl végének bővülését és kiírja a képernyőre, de csak bizonyos prefixű sorok közötti sorokat jelenít meg.

A tail-lel ki tudom íratni a változásokat. Az awk-val és reguláris kifejezésekkel tudom szűrni a fájl tartalmát. Ez így külön-külön kipróbálva működik konzolban.

Legnagyobb gondom, hogy a bash scriptben csak egyszer fut le a tail és nem figyeli folyamatosan a fájlt.

Végtelen ciklus azért nem jó, mert a tail-nak elméletileg az a lényege, hogy csak akkor fut, ha van módosítás a fájlon. A watch program azért nem tetszik, mert levágja a szöveg végét a képernyő alján.

Az ötleteket előre is köszönöm!

Hozzászólások

Az nem jó, hogy bizonyos időközönként stat-ot csinálsz a file-ról, s ha pl. modify time vagy hossz változott, akkor csinálsz tail-t, awk-t, akármit?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Szia!

Talan a swatch jo lehet erre.

#!/bin/sh

tail -n 0 -F $1|awk /^$2/

miért nem jó?