Назад | Перейти на главную страницу

Разделить большой файл журнала apache на прошлый день

У меня есть файл журнала размером 3 ГБ, мне нужно извлечь последние 48 часов, не загружая весь файл размером 3 ГБ. Как я могу разбить файл на последние 48 часов. Значит, я могу скачать только этот единственный файл?

У меня есть полный доступ по SSH, и я могу устанавливать дополнительные инструменты.

Предполагая, что у вас есть доступ оболочки к серверу с файлом журнала, попробуйте

egrep '2[789]/Sep/2011' logfile.big > /tmp/logfile.small

Это вернется к началу 27-го числа, что составляет немногим более 48 часов, но я ожидал, что это будет намного меньше, чем весь файл, и это быстро. Не забудьте заархивировать полученный файл перед его передачей, это еще больше ускорит процесс.

Вы можете использовать парсер журнала Apache - Аналоговый. Он работает быстро, потому что написан на C. Аналог позволяет указывать временные диапазоны с помощью параметров командной строки + F и + T, которые логически обозначают «FROM» и «TO».