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.
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.
#!/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 {} \;
Criei um script baseado no seu, só que tenho uma duvida..Eu posso fazer o rotacionamento sem parar o apache?
[]'s
Marcelo