Script para rotacionar logs dos sites no Apache

Publicado por Alcir Cardoso 22/01/2007

[ Hits: 7.160 ]

Homepage: http://maboo.us

Download script_http.txt




Eu tinha um problema para rotacionar os logs dos sites que estão no Apache, talvez o próprio Apache ou o newsyslog possua algo pra fazer isso automático, mas como nunca fui atrás disso, resolvi escrever este script que com algumas adaptações poderá ser usado para outras coisas.

  



Esconder código-fonte

#!/bin/sh
echo "Iniciando Rotação de Logs do Apache..."
DATA=$(date +%d%m%Y)

echo "Parando o serviço..."
apachectl stop

cd /var/log/httpd/

#Criei um loop onde ele pega o nome de todos
#os arquivos que finalizam com log
#e aplica os comandos abaixo
for ARQUIVO in *log;
        do
                echo "Compactando "$ARQUIVO"..."
                tar -cf "$DATA-$ARQUIVO.tar.gz" "$ARQUIVO";
                echo "Rotacionando..."
                echo "" > "$ARQUIVO"
done

echo "Iniciando o serviço..."
apachectl start


#Agora ele apaga os arquivos com mais dias
#que o especificado na linha debaixo
#Detalhe ele faz essa busca com base na
#ultima data que o arquivo foi alterado
#e não na data de criação do arquivo

echo "Apagando logs com mais de 1 ano"
find /var/log/httpd/ -mtime +375 -exec rm -f {} \;

Scripts recomendados

Check bandwidth para Nagios

Numlock automático no Slackware

Popcorn-Time via shell script

Monitorando tentativas de conexões

Horário de Verão 2010/2011


  

Comentários
[1] Comentário enviado por marcelo2991 em 04/08/2014 - 17:54h

Olá Alcir,

Criei um script baseado no seu, só que tenho uma duvida..Eu posso fazer o rotacionamento sem parar o apache?

[]'s
Marcelo


Contribuir com comentário