Tente usar o comando split.
split --bytes=100M <logfile> <logfile>
E sim, gire seus arquivos de log com mais frequência. É um crime hediondo não fazer isso.
Meu servidor de aplicativos jboss gera alguns arquivos de log muito grandes, geralmente em torno de 8 a 10 gb. Como posso visualizar esses arquivos de log no meu servidor redhat linux?
Eu costumo usar less
para ver arquivos de log. Pode ver enormes arquivos de log (bytes multi-giga). less
também é capaz de visualizar arquivos de log compactados (terminando com .gz
).
Você também pode usar grep
para filtrar por um padrão específico.
Você também pode usar um 'cabeçalho' para listar as primeiras linhas ou um 'final' para listar o final do arquivo. Se você acrescentar um número após a "cabeça" ou a "cauda", ele exibirá esse número de linhas.
Alan
Temos um problema semelhante aqui (grandes arquivos de log, embora não o JBoss), e tudo o que posso dizer é que "grep é seu amigo". Eu suponho que seus arquivos de log sejam parecidos com isto:
%pr_e%
(estes são extraídos de um arquivo / var / log / messages, mas a idéia é que cada entrada é precedida por um timestamp).
Dado que seu arquivo de log é preenchido com registros de data e hora, o que eu faço é algo parecido com o seguinte:
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.
Que realmente é apenas grep'ing para timestamp de hoje, ou seja,
grep '^'date "+%b %d"' 08:14' /my/log/file > /tmp/814amLog.txt
Então eu menos ou vim -R o arquivo 814amLog.txt. A ideia é colocá-lo em um pedaço do tamanho que você está interessado.
O comando dividido dado como a primeira resposta é utilizável, mas na minha experiência dá resultados bastante arbitrários. Normalmente estou procurando algo que aconteceu "sobre esse tempo". Assim, a data e a hora são usadas com mais frequência.
Você pode criar um script de cron job para grep através de seus arquivos de log à noite e salvá-los em um local apropriado, assim você não precisa fazê-lo adhoc. Eu também recomendo a criação de um trabalho para gzip compactar arquivos de log mais antigos que um ou dois dias, pois você ficará surpreso com a quantidade de espaço em disco que você economiza.