У меня есть файл журнала размером 3 ГБ, мне нужно извлечь последние 48 часов, не загружая весь файл размером 3 ГБ. Как я могу разбить файл на последние 48 часов. Значит, я могу скачать только этот единственный файл?
У меня есть полный доступ по SSH, и я могу устанавливать дополнительные инструменты.
Предполагая, что у вас есть доступ оболочки к серверу с файлом журнала, попробуйте
egrep '2[789]/Sep/2011' logfile.big > /tmp/logfile.small
Это вернется к началу 27-го числа, что составляет немногим более 48 часов, но я ожидал, что это будет намного меньше, чем весь файл, и это быстро. Не забудьте заархивировать полученный файл перед его передачей, это еще больше ускорит процесс.
Вы можете использовать парсер журнала Apache - Аналоговый. Он работает быстро, потому что написан на C. Аналог позволяет указывать временные диапазоны с помощью параметров командной строки + F и + T, которые логически обозначают «FROM» и «TO».