domingo, 23 de setembro de 2007

Script para limpar arquivos de log

No Linux, o diretório /var/log guarda informações sobre erros do sistema ou mensagens geradas automaticamente que são muito importante para administradores de TI.

O problema é que num micro pessoal, nem sempre controlamos estes logs e eles vão se acumulando e ocupando muito espaço na hd.

De vez em quando é bom dar uma limpada nestes arquivos, mas como não é aconselhável simplesmente eliminá-los, vai um script que apaga os arquivos antigos já compactados e zera os arquivos em uso sem apagá-los.

#! /bin/sh
cd /var/log
#limpa arquivos compactados
rm *.gz
# cria lista de todos os arquivos de log que serao limpos
lista=`find -type f`
# executa a limpeza dos logs
for i in $lista
do
echo -n >$i &>/dev/null
echo Zerando arquivo $i...
done
echo Limpeza dos arquivos de log concluída!


Copie o texto acima em um arquivo e salve como por exemplo limparlogs.sh, dê permissões de execução ao arquivo ($ chmod +x limparlogs.sh) e execute com o usuário root.

Eu costumo salvar meus scripts no diretório /usr/local/bin, onde aliás estão a maioria dos scripts do Kurumin. Fica fácil porque para usá-los é só chamá-los num terminal.

4 comentários:

Anônimo disse...

Muito Bom! Parabéns!

Anônimo disse...

Show de bola.. Resolveu meu problema..mais de 90 gb na pasta log.. Parabéns.

Anônimo disse...

Ta dando bash: limparlogs.sh: command not found como resolver ?

Francisco ACLima disse...

Se o arquivo não foi criado dentro de um diretório de programas como /usr/local/bin, você pode chamar o executável diretamente da pasta onde ele foi criado desta forma:
$ sudo ./limparlogs.sh