Limpando arquivos de log no linux

10

Estou usando uma máquina virtual kvm ubuntu 10.04 para testar alguns recursos de um módulo do kernel. Eu percorro os arquivos /var/log para observar as mensagens do kernel sobre esse módulo.

Para começar de um estado limpo, removo os arquivos de log que contêm mensagens mais antigas, executando rm -rf /var/log/* e, em seguida, reinicializando a máquina virtual. No entanto, após a reinicialização, os novos arquivos de log ainda contêm essas mensagens de log antigas. Demora cerca de 5-6 ciclos de exclusão de arquivos e reinicialização da máquina virtual para finalmente se livrar dessas mensagens de arquivo de log.

Por que isso está acontecendo? Existe uma maneira mais fácil de limpar arquivos de log?

    
por contemplatingzombie 25.12.2011 / 23:20

3 respostas

7

A maneira mais fácil de limpar os logs antigos não é removê-los.

A melhor maneira de limpar os logs é logrotate como Hanan N. Apontado ou:

find /var/log -type f -exec /bin/cp /dev/null {} \;

para cada um dos arquivos de log. Não sei exatamente a quais entradas de log você está se referindo a partir da inicialização anterior, mas se quiser que isso seja limpo após a inicialização, você pode colocar o comando acima no script /etc/rc.local para que todos os registros sejam feitos após a inicialização. p>

Normalmente, você não quer limpar os registros, pois eles são o seu ponto de partida em todas as soluções de problemas.

    
por 26.12.2011 / 01:06
3

Para o que você está fazendo, pode ser melhor adicionar um arquivo de log adicional para as mensagens do kernel. Alguns daemons de log permitem que você execute correspondências nos registros que estão sendo gravados, para que você obtenha apenas os registros apropriados em seu arquivo. Você pode, então, girar, excluir ou renomear os arquivos entre as execuções. (Se você não reinicializar, pode ser necessário enviar um sinal HUP para o daemon de log para que ele reabra seus arquivos.

Existem também ferramentas que extraem apenas novos registros do log. O utilitário logtail do pacote logcheck é um desses utilitários. Pode ser executado com um arquivo de deslocamento alternativo.

Existem outras ferramentas que observam os registros em busca de registros que correspondam a um padrão e os relatam. Um deles pode funcionar bem para você.

    
por 26.12.2011 / 04:50
1

Isso parece funcionar bem (no Ubuntu LTS 14.04), girando seus logs para um log limpo e, em seguida, excluindo as entradas de log mais antigas. É semelhante ao método cp / dev / null, mas acho que é mais limpo. ymmv

logrotate --force /etc/logrotate.conf
find /var/log/ -name '*[0-5]*' -exec rm {} \;
    
por 05.09.2014 / 00:31