Использование tail -F для мониторинга огромного файла

Я столкнулся с требованием, при котором мне нужно постоянно отслеживать текущий (добавляющий) файл для предопределенного шаблона (скажем, сообщения об ошибке), который я планирую использовать tail -F [FileName] | grep "pattern" и поместите его в какой-нибудь скрипт, чтобы уведомить меня. Меня беспокоит то, как он будет работать для огромного файла, скажем, размером 50 ГБ, я хочу понять, сколько системных ресурсов потребляет это решение. Вкратце, как работает tail / обрабатывает файл в перспективе использования ресурсов.

1 ответ

tail не читает весь файл. Когда это возможно, он начинается в конце, а затем возвращается, пока не достигнет ожидаемого количества строк. Тем не менее, он читает все, когда не может искать, например, чтение из канала.

Это может не относиться к вам, но имейте в виду, что tail -f отслеживает дескриптор файла, а не имя файла. Так, если у вас есть, например, ротация журнала, он просто остановится, потому что оригинальный файл перестал изменяться.

Другие вопросы по тегам