gerar log com logrotate [RESOLVIDO]

1. gerar log com logrotate [RESOLVIDO]

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 30/01/2012 - 15:27h

É possível eu criar um log da minha aplicação e utilizar o logrotate para rotacionar meu log?
vamos com um exemplo:
tenho uma aplicação rodando e criei um arquivo de log para que mostre tudo que é executado, mas gostaria que esse arquivo tivesse no máximo 5 mb, é possível fazer essa tarefa utilizando o logrotate?
Abraços...


  


2. Re: gerar log com logrotate [RESOLVIDO]

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 30/01/2012 - 16:50h

Meu log é gerado dessa forma:

script.sh 1>> arquivo.log 2>&1

Segui um tutorial, mas não funcionou.


criei a função dentro de /etc/logrotate.conf no final do arquivo

/home/usuario/arquivo.log {
size 10k
create 755 root root
rotate 1
}

e depois executei o comando:
logrotate -s /var/log/logstatus /etc/logrotate.conf

Quando executo esse último comando ele até cria um arquivo.log.1 e esse arquivo toma o lugar do arquivo.log, aparece as mensagens nele, todo certo, tudo ok, mas não obedece o limite dos 10 kbytes que coloquei como limite.



3. Re: gerar log com logrotate [RESOLVIDO]

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 31/01/2012 - 15:41h

Achei uma outra forma legal tmb, usando o sed na própria aplicação, mas qndo o sed entra em ação ele trava o arquivo de logo e o log não escreve mais.
Fiz assim, no código do próprio script:



LOG=$(cat arquivo.log | wc -l)
if [ $LOG -gt 600 ]
then
sed -i '1,100d' arquivo.log
fi


Então, quando o log atingir 600 linhas ou mais o sed remove da linha 1 a linha 100, ficando o log com 500 linhas até atingir 600 linhas de novo, pra mim ia funcionar perfeitamente, problema é que o sed qndo executa esse comando o log trava e não escreve mais.


4. Re: gerar log com logrotate [RESOLVIDO]

Lucas Doná Sfalcin
lucasdona

(usa Linux Mint)

Enviado em 31/01/2012 - 16:17h

pronto, agora resolvi o problema.
Gero meu log e quando ele atinge 1100 linhas eu apago as 100 primeiras linhas, fazendo:

TAM_LOG=$(cat arquivo.log | wc -l) #retorna o numero de linhas do arquivo

if [ $TAM_LOG -GT 1100 ]
then
cp arquivo.log arquivo.log.tmp
sed -i '1,100d' arquivo.log.tmp #remove da linha 1 a linha 100
cat arquivo.log.tmp > arquivo.log
fi

Pronto, assim meu log não cresce infinitamente e nem trava a escrita.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts