Para isto, a melhor solução seria a utilização de um logrotate. Porém ele não adianta muito quando já estamos com o problema.
O script abaixo quebra o arquivo em X linhas que você decide. Assim fica mais fácil analisar.
- Código: Selecionar tudo
#!/bin/sh
# trimlog.sh
filesize=`cat $1|wc -l`
trim=`expr $filesize - $2`
if [ $trim -gt 0 ] ; then
sed "1,$trim d" $1 > /tmp/$1
# mv /tmp/$1 $1 # (Descomente esta linha se quiser substituir o arquivo atual)
echo $1 trimmed by $trim lines
fi
Modo de uso:
- Código: Selecionar tudo
# cd /var/log
# trimlog.sh messages 10000
No exemplo acima, o script irá retirar as primeiras 10000 linhas do arquivo e salvar no arquivo /tmp/messages.
É isto.
Abraços
NoComments
