Pular para o conteúdo

Script para rotacionar logs dos sites no Apache

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.
Alcir Cardoso cardosoalcir
Hits: 8.530 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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.
Download script_http.txt Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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 {} \;
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Encerrar vários processos de uma mesma aplicação

Gerenciamento de usários do Squid usando Dialog

Firewall

Systemctl-config - parada ou reativação de um serviço do systemD

Menu de saída para i3 (versão em Zenity)

#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

Entre na sua conta para comentar.