2010-08-10 5 views
2

Я отслеживаю файл журнала, делая «TAIL -n -0 -F filename». Но это занимает один процессор, поскольку в файл журнала записывается много сообщений. Есть ли способ, я могу открыть файл и прочитать новые/несколько записей и закрыть его и повторить его каждые 5 секундного интервала? Так что мне не нужно следить за файлом? Как я могу запомнить последнюю прочитанную строку, чтобы начать с следующей в следующем прогоне? Я пытаюсь сделать это в nawk, создавая cmd хвоста.альтернатива tail -F

+0

То, что вы описываете, является именно тем, что tail -f делает внутренне, единственное, что отличается от того, что вы говорите об использовании более длительного времени задержки. Если вам все еще нужно увидеть все линии, оборудование ограничит вас. – Gary

ответ

1

Вы не сможете магически использовать меньше ресурсов, чтобы зачеркнуть файл, написав собственную реализацию. Если tail -f использует ресурсы, потому что файл быстро растет, пользовательская версия не поможет, если вы все еще хотите просмотреть все строки по мере их написания. Вы просто ограничены аппаратным вводом/выводом и/или процессором.

1

Попробуйте использовать --sleep-interval=S где «S» - это количество секунд (по умолчанию 1.0 - вы можете указать десятичные знаки).

tail -n 0 --sleep-interval=.5 -F filename 

Если у вас есть так много записей журнала, tail является срыванией процессора, как вы в состоянии контролировать их?

Смежные вопросы