Проблема чтения больших файлов журнала на сервере RedHat Linux

Проблема чтения больших файлов журнала на сервере RedHat Linux

Мой сервер приложений jboss генерирует довольно большие файлы журналов, часто около 8–10 ГБ. Как просмотреть эти файлы журналов на моем сервере RedHat Linux?

решение1

Попробуйте использовать команду split.

split --bytes=100M <logfile> <logfile>

И да, чаще меняйте файлы журналов. Не делать этого — отвратительное преступление.

решение2

Я обычно использую lessдля просмотра файлов журналов. Он может просматривать огромные файлы журналов (многогигабайтные). lessтакже способен просматривать сжатые файлы журналов (заканчивающиеся на .gz).

Вы также можете использовать grepфильтр для определенного шаблона.

решение3

Вы также можете использовать «head» для перечисления первых строк или «tail» для перечисления конца файла. Если вы добавите число после «head» или «tail», оно отобразит это количество строк.

Алан

решение4

У нас похожая проблема (большие файлы журналов, хотя и не JBoss), и все, что я могу сказать, это "grep - ваш друг". Я предполагаю, что ваши файлы журналов выглядят примерно так:

Dec 27 08:14:35 hostname kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Dec 27 08:14:35 hostname kernel: eth2: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:35 hostname kernel: eth3: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:36 hostname pcscd: hotplug_libusb.c:402:HPEstablishUSBNotifications() Driver ifd-egate.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.

(они извлекаются из файла /var/log/messages, но идея заключается в том, что каждой записи предшествует метка времени).

Учитывая, что ваш файл журнала заполнен временными метками, я делаю что-то вроде следующего:

grep '^`date "+%b %d"` 08:14' /my/log/file > /tmp/814amLog.txt

Что на самом деле является просто поиском сегодняшней временной метки, т.е.

grep "^27 дек 08:14" /my/log/file > /tmp/814amLog.txt

Затем я less или vim -R файл 814amLog.txt. Идея в том, чтобы поместить его в небольшой кусок, который вам интересен.

Команда split, указанная в первом ответе, пригодна к использованию, но по моему опыту дает довольно произвольные результаты. Обычно я ищу что-то, что произошло "примерно в это время". Поэтому grep'инг по дате и времени используется чаще.

Вы можете написать задание cron, чтобы ночью просмотреть ваши файлы журналов и сохранить их в подходящем месте, чтобы вам не пришлось делать это спонтанно. Я также настоятельно рекомендую создать задание для сжатия файлов журналов gzip старше дня или около того, так как вы будете удивлены тем, сколько места на диске вы сэкономите.

Связанный контент