Script para rotacionar logs dos sites no Apache

Publicado por Alcir Cardoso 22/01/2007

[ Hits: 8.025 ]

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

APACHE - Script para gerenciar usuários do apache

Catsort - Concatenar resultado filtrando e removendo repetidas

Slackware Current Pós Instalação Zero Bala

Log do Squid em terminal

[wgetreload] Evitando conexão "staled" (parada) no wget


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts