> o próprio Squid faz isso: "squid -k rotate", ou ainda (squid.conf), exemplo:
>
> logfile_rotate 10
>
> Ou ainda agende o comando squid -k rotate no crontab (ou nos diretórios
> /etc/cron.{daily,hourly,monthly,weekly}, só copiar o script p/ um deles).
Mas o rotate exclui todo o log, eu quero deixar pelo menos as ultimas 3 horas
de log.
> Se quer remover apenas um intervalo de um dos logs de acesso (acho que é sua
> duvida inicial), algo como isso:
>
> # grep -Ev '07-21 02|03:' access.log > access.log.new
> # mv access.log.new access.log
Eu tenho 20gb de log, não tem como criar dois arquivos com esse tamanho porque
fico sem espaço.
Para simplificar então, como faço para remover metade do conteudo de um
arquivo, tipo, começando do começo do arquivo e deletando a metade do conteúdo,
um arquivo de 20gb, ficaria com 10gb, isso de 2 em 2 horas, tem como ?
Att,
Higo Ribeiro.
> From: [email protected]
> To: [email protected]
> Subject: [slack-users] Re: (CORRIGINDO)Script para limpeza parcial de Log do
> Squid.
> Date: Fri, 31 Jul 2009 09:51:37 -0300
>
>
> On Friday 31 July 2009 09:06:38 Ellington Santos wrote:
> > man logrotate
> > Esse cara que é o responsável por cuidar de logs.
>
>
> o próprio Squid faz isso: "squid -k rotate", ou ainda (squid.conf), exemplo:
>
> logfile_rotate 10
>
> Ou ainda agende o comando squid -k rotate no crontab (ou nos diretórios
> /etc/cron.{daily,hourly,monthly,weekly}, só copiar o script p/ um deles).
>
> Se quer remover apenas um intervalo de um dos logs de acesso (acho que é sua
> duvida inicial), algo como isso:
>
> # grep -Ev '07-21 02|03:' access.log > access.log.new
> # mv access.log.new access.log
>
> deve funcionar (ou seja, vai remover os logs entre 2 e 3 da manhã do dia
> 21-07
> do arquivo criado e depois sobrescrever o original, sem as entradas do
> original), ou ainda algo como:
>
> # sed -ri 's/^.+07-21 0[23]:.+$//g'
>
> que faz a mesma coisa sem precisar criar/sobreecrever arquivos.
>
> Ah, aqui meu access.log está formatado assim:
>
> logformat format %{%Y-%m-%d %H:%M:%S}tl %>a %Ss/%03Hs %ru
> access_log /var/log/squid/access.log format
>
> Se for o log original, sem formatação (a data está em segundos apenas), pode
> usar, por exemplo, o date p/ converter as datas e aplicar um dos filtros que
> descrevi acima, seria algo como (conversão de datas com o date):
>
> $ date -d "1970-01-01 UTC + 1245668541.822 seconds"
>
> Assim você encontra o intervalo e filtra da mesma maneira.
>
> --
> Herbert
>
> >
_________________________________________________________________
Novo Internet Explorer 8. Baixe agora, é grátis!
http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8
--~--~---------~--~----~------------~-------~--~----~
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br
Antes de perguntar:
http://www.istf.com.br/perguntas/
Para sair da lista envie um e-mail para:
[email protected]
-~----------~----~----~----~------~----~------~--~---