Sabemos que os relatórios periódicos do SARG ocupam um espaço significativo em disco, portanto, como deletar relatórios N dias antigos? Como automatizar a criação de relatórios diários? Neste artigo explico como criar scripts que se encarregam de resolver tais problemas de maneira fácil.
Bom, na página anterior agendamos a criação do relatório diário. Não seria inteligente de nossa parte implementar uma solução que nos trará dor-de-cabeça futura, logo precisamos gerenciar estes relatórios gerados, excluindo antigos, pois os mesmos ocupam um espaço considerável em disco.
Abaixo segue o script encarregado da tarefa, logo após explico como funciona:
#!/bin/bash
# Script by Rodrigo Polesso
# 24/08/2004
# Este script se encarrega de excluir relatórios SARG antigos, afim de manter a integridade do sistema futuramente.
# Na variável abaixo coloque o diretório no qual os relatórios
# são gerados
DIRETORIO_SARG="/var/www/proxy/"
# Preencha esta variável abaixo para dizer ao script quantos dias um relatório irá permanecer em disco.
NUMERO_DE_DIAS_ANTIGO=5
Existem N maneiras de fazer isso, portanto sinta-se à vontade em modificar o script.
Guardamos na variável PAR1 a data atual - NUMERO_DE_DIAS_ANTIGOS, tudo no formato aaaa-mm-dd, o qual é o mesmo do ls --time-style=long-iso.
Guardamos na variável PAR2 os arquivos e diretórios contidos em DIRETORIO_SARG que possuem a data de modificação igual a data contida em PAR1.
Executo um laço de repetição FOR para executar o comando "rm -R" em todos os arquivos e diretórios encontrados com a data especificada.
Bom, o funcionamento é bastante simples como podem ver. Isso pode ajudar na manutenção de seu SQUID. Claro que você pode adicionar este script para ser executado logo após o script criador de relatórios na crontab.
#1Comentário enviado por y2h4ck em 11/09/2004 - 11:15h
O Sarg e muito bacana, mas tem um probleminha que deve ser lembrado aqui, eu ja tive esse problema e muitaaaaaaaaaaa gente que usou ele tambem teve o mesmo.
bom quando o log access do squid vai aumentando o SARG ja nao consegue gerar relatorios, entao se vc quer que ele gere relatorios diarios e bom vc montar um sistema de rotate diario para seus logs ou entao
colocar no cron para ele gerar o primeiro relatorio, e depois limpar o log, para iniciar um outro relatorio no dia seguinte e limpar dinovo... assim se previne o acumulo e o sarga vai funcionar perfeitinho.
Cara ficou da hora o artigo paravens :)
abraços
Anderson
#2Comentário enviado por SantAnna em 12/09/2004 - 12:20h
Ficou muito bacana!
Eu já tive que criar um script para o mesmo problema, mas para o servidor de e-mails...
Depois descobri que o comando find faz tudo isso...
T+
#3Comentário enviado por astrodyum em 12/09/2004 - 12:53h
Exatamente, como disse no artigo, existem varias formas de fazer. O find é uma otima alternativa a solução do problema.
Obrigado pelos elogios
Um abraco
#4Comentário enviado por tgrunge em 11/02/2005 - 09:36h
cara muito legal a sua matéria mas ainda to começando no linux e gostaira de saber uma coisa, esses scripts são rodados uma vez e daí funcionam, ou eu tenho q colocar algum comando pra eles serem executados sempre q o linux for iniciado, eu uso o kurumim 3.
valew
#5Comentário enviado por astrodyum em 11/02/2005 - 13:08h
Opa, obrigado. No kurumin nao sei como funciona a auto inicializacao, mas eh dentro de /etc/rc.d/ ai dentro vc tem arquivos que contem oq sera inicializado automaticamente. Abraco cara
#6Comentário enviado por mfreddo em 24/03/2005 - 08:03h
Ola, gostei muito das dicas que você forneceu, e gostaria de colaborar.
Este script é bem bacana, muito util e evita um grande problema que é lotar o disco de coisas velhas, mas existe uma maneira um pouco mais facil de se fazer isso:
O Sarg possui um item no arquivo de configuração ( sarg.conf ) que limita a quantidade de "relatorios" .
# TAG: lastlog n
# How many reports files must be keept in reports directory.
# The oldest report file will be automatically removed.
# 0 - no limit.
#
lastlog 90
Neste caso, o sarg deixaria "90" "dias" ( se ele fosse gerado diariamente ) ou 90 "semanas" se ele fosse gerado semanalmente ..... )
Um Abraco
#7Comentário enviado por reimassupilami em 06/05/2005 - 16:58h
eu to mexendo com sarg aki pra gerar relatorios do squid... parece que por padrão ele gera os relatorios a partir do dia primeiro do mes até o dia corrente, tipo do dia 01/05 até 06/05 q é hoje... mas eu preciso gerar os antigos tb... tem como informar para o sarg o periodo, ou algo assim?
o parametro -d parecia resolver meu problema, assim:
sarg -d 03/05/2005-06/05/2005
isso funciona... porém se eu informar o início em um mês anterior ao atual, mesmo assim ele vai pegar apenas no dia 1 do mês atual... eita... tipo, se eu informar pra pegar desde o dia 01/03:
sarg -d 01/03/2005-06/05/2005
ele vai pegar a partir do dia 01/05... pq isso?
#8Comentário enviado por reimassupilami em 06/05/2005 - 17:35h
outra duvidazinha... se eu quisesse a data de ontem ao invez da data de hoje bastaria colocar o 1 no luga do 0? é isso?
#9Comentário enviado por dexters em 25/12/2005 - 12:57h
Olá amigo, muito bom sua Materia este script resolve, agora eu gostaria de saber se eu poderia usa-lo para apagar tambem os logs do squid access.log onde eu resolveria meu problema do sarg parar de fazer relatorio por causa do tamanho do log do squid, eu teria que mudar so o diretorio do logo do Par2 para o diretorio do log squid? so isso resolveria?
#10Comentário enviado por exercitobr em 02/02/2006 - 10:48h
Como instalo o sar no SUSE 10.0? Quais comandos?
#11Comentário enviado por daniel_rg em 14/02/2006 - 19:50h
Cara, para instalar no suse, basta baixar o pacote do SuSe no site (http://sarg.sourceforge.net/), e depois instalar com:
yast -i <PATH_DO_PACOTE>
falou...
#12Comentário enviado por pcnmota em 22/02/2006 - 17:24h
Legal cara... bem util..
flw!
#13Comentário enviado por edsonrodsilva em 23/02/2006 - 15:47h
Cara Parebens!! Exelente materia
Este script vai resolver meu problema!! mas quando o executo ele não remove os relatorios antigos!!
da o sequinte erro:
rm: imposivel remover "23FEB2006-23Feb2006" : Arquivo ou diretorio não encontrado
for i in $PAR2
do
rm -R $i
done
Gostaria de saber o significado do $i no script!!
Obrigado!!!
#14Comentário enviado por astrodyum em 23/02/2006 - 16:58h
Ola, o $i recebe os nomes dos diretorios a serem apagados. Voce pode fazer um script com a mesma funcao utilizando o comando find e rm.
Atenciosamente
Rodrigo Polesso
#15Comentário enviado por glaucoslv em 11/05/2006 - 15:07h
Dexters, para apagar os relatórios do squid, vc pode usar um script como segue abaixo:
#!/bin/bash
#Parar o Squid
cds
./squid stop
#Gerar o relatório no Sarg
sarg
#Zerar os arquivos gerados pelo squid
> /var/log/squid/access.log
> /var/log/squid/store.log
> /var/log/squid/cache.log
# Reiniciar o Squid
cds
./squid start
Assim, cada vez q vc gerar um relatório, o arquivo de access.log será zerado.
Abraços
Glauco
#16Comentário enviado por fag_oliv em 16/05/2006 - 15:41h
cara e como eu faria pra gerar o relatorio do dia, semana e mes ? vc sabe ?
#17Comentário enviado por HilarioTI em 15/08/2006 - 15:52h
ou cara voce poderia me dar uma ajudar pois nao esta deletando os arquivos antigos, embora ja verifiquei o script e nao me resolveu tens alguma dica?
#18Comentário enviado por mariadejesus em 24/10/2006 - 16:44h
cOMO FAÇO PARA SABER SE TENHO O SARG INSTALADO EU USO kURUMIN.
#19Comentário enviado por ducksjr em 16/02/2007 - 14:15h
# No sarg.conf se for configurado a linha a seguir como funcionaria:
lastlog 3
# Eu tenho relátorios diarios, semanais e mensais.
# Seriam excluidas os ultimos 3 meses, as ultimas 3 semanas ou os ultimos 3 dias
# Outra duvida seria necessario dar um restart no sarg ou algo parecido ou ele le o arquivo de configuração no momento em que gera os relatórios
# Caso eu faça um script para apagar os arquivo de acordo com um determinado tempo
# Como faria para alterar de também as paginas index.html (de forma automatica)?
#20Comentário enviado por diegofsousarn em 29/08/2007 - 20:22h
Para solucionar esse problema do nosso amigo edsonrodsilva, enfrentado tambem por mim eu fiz o seguinte, coloquei uma variavel indicando onde esta o script ficando assim:
#!/bin/bash
# Script by Rodrigo Polesso
# 24/08/2004
# Este script se encarrega de excluir relatórios SARG antigos, afim de manter a integridade do sistema futuramente.
Programa=/etc/init.d/sarg-descart
# Na variável abaixo coloque o diretório no qual os relatórios
# são gerados
DIRETORIO_SARG="/home/public/squid-reports/"
# Preencha esta variável abaixo para dizer ao script quantos dias um relatório irá permanecer em disco.
NUMERO_DE_DIAS_ANTIGO=0
#21Comentário enviado por jefferson.gava em 14/09/2007 - 15:35h
Amigos.. nao consigo instalar o Sarg aqui..
#22Comentário enviado por vmm@vmm em 19/09/2007 - 07:54h
Instalei o sarg, porém quero apagar os relatórios que gravou e começar zerado novamente, como faço ?
#23Comentário enviado por alex_a_souza em 28/11/2007 - 14:58h
?comentario=eu tenho o sarg instalado e funcionando.
Eu gero o relatorio manualmente quando preciso dele.
Tem dias que preciso filtrar, só gerar do dia anterior ao atual, sempre funciona.
ex: sarg -f /usr/local/etc/sarg/sarg.conf -d 27/11/2007/-25/11/2007
Agora eu estou precisando gerar um relatorio som com os sites [*****] e os IPs.
Tentei colocar dessa forma
ex: sarg -f /usr/local/etc/sarg/sarg.conf -s sex
Mas só aparece um site acessado por IP, quando gero sem o "-s sex", ele alem de mostrar todos os sites mostra que tem varios sites [*****].
Então alguem sabe como eu faço pra gerar esse relatorio com todos os sites PORNOS acessados???
Desde já muito obrigado
#24Comentário enviado por Deuz em 11/01/2008 - 10:37h
Bom dia! é um assunto muito bacana pra quem gosta e precisa monitorar os acessos, até por questão de serguraça, eu tenho o sarg rodando normalmente, gera os relatorios todos os dias sem dor de cabeça, mas o que eu queria e sempre quiz, era gerar relatorios mensal e anual, já procurei pela net mas nao achei nada, ouve umas dicas, mas nos testes nao funcionou. Se alguem puder me dar uma ajuda nisso, fico muito agradecido, o comando que uso pra gerar diario é esse:
/usr/sbin/sarg -f /etc/sarg/sarg.conf -p
cp /var/log/squid/access.log /var/log/squid/copia`date +%d%m%y`access.log
echo "" > /var/log/squid/access.log
grato!!
#25Comentário enviado por clovisclerice em 12/02/2008 - 04:18h
ai galera e tenho o sarg instalado e o squid funcionando perfeitamente mais não sei o pq o meu sarg não ta gerando os relatórios do squid não sei se eu não soube instalar ou se é algum bug quando entro em http://192.168.1.2/squid-reports ai tem Daily,Weekly,Montly mais dentro deles não tem nada e eu não consigo descobrir o pq estou usando o ubuntu 7.10 server.
#26Comentário enviado por Nikitiuk em 22/09/2008 - 16:39h
Só um comentário que pode ajudar alguns de vocês:
Para que o sarg consiga gerar um relatório de um determinado período é necessário que o access.log do squid contenha este período.
Como normalmente temos o logrotate configurado, provavelmente teremos os relatórios do sarg com um período limitado.
Isso parece lógico, mas às vezes esquecemos...
Até mais
#27Comentário enviado por evandromagnago em 27/09/2008 - 14:20h
qual a versao do sarg para o ipcop 1.4.21
#28Comentário enviado por thiagou319 em 01/10/2008 - 14:26h
Como eu faco para o sarg gerar index.php ao inves de gerar
index.html?
Estou tendo problemas quanto ao acesso, quero restringir estes acessos.
Obrigado!
#29Comentário enviado por darkglobe em 11/11/2008 - 17:33h
Aqui vai uma dica de script para apagar os relatorios do SARG e reindexar o index.html.
#!/bin/bash
# Apagar Relatorios do Sarg com mais de 6 meses
# Wagner Andre
# 10/11/2008
sarg_dir=/var/www/sarg/daily
echo "----- Procurando por arquivos com mais de 6 meses..."
mais_de_6meses=`find $sarg_dir -type d -ctime +180 |cut -d / -f6 |uniq |grep ^[0-3]`
echo "----- Excluindo arquivos..."
for a in $mais_de_6meses; do
rm -rvf $sarg_dir/$a
done
echo "----- Arquivos excluidos!"
echo "----- Reparando index.html..."
for b in $mais_de_6meses; do
grep -v $b $sarg_dir/index.html > $sarg_dir/index.tmp
mv -vf $sarg_dir/index.tmp $sarg_dir/index.html
done
echo "----- Removida as entradas no arquivo index.html"
echo "----- Concluido!"
exit 0
#30Comentário enviado por georgejales em 21/05/2009 - 17:30h
BOM DIA A TODOS. ALGUEM JÁ EDITOU O RELATÓRIO DO SARG PARA EXIBIR O IP DA MAQUINA E O USUÁRIO USADO NO ACESSO??? ALGUEM TEM ALGUMA IDÉIA DE COMO FAZER ISSO??? EU ACREDITO QUE O PRIMEIRO PASSO É EDITAR O ARQUIVO SARG.CSS. OBRIGADO.
#31Comentário enviado por alerocha79 em 14/06/2010 - 15:02h
Georgejales,
Você pode criar relatórios no sarg facilmente, por padrão ele exibe ip, mas você pode configurar DDNS, DHCP e BIND9 para carregar automaticamente por nomes de computadores. Mais informações em
#32Comentário enviado por paulopmt1 em 03/05/2011 - 09:29h
Perfeito amigo, era exatamente o que eu procurava.
Muito obrigado.
#33Comentário enviado por emanum em 29/12/2011 - 09:13h
######## DUVIDA #########
Pessoal seguinte como sou novo preciso de um grande help, cada dia que o sarg gera um relatorio fica dentro de um diretorio com o nome do dia e seu index.
Minha Duvida é a seguinte como posso ter um index com todos os dias do mes ? tipo
dia 01 os dados principais
dia 02 os dados principais
.
.
.
?
#34Comentário enviado por thiaguin em 18/07/2012 - 11:30h
Alguem saberia me informar como gerar um relatorio no sarg com somente as paginas digitadas no browser pelos usuarios?
eu encaminho os relatorios para diretoria da empresa, e fica muito confuso de entender os relatorios com tanta subpagina e cache nos relatorios.
Alguem teria alguma dica?
Preferências de cookies
Usamos cookies essenciais para manter o site funcionando. Cookies de estatísticas e anúncios só serão carregados se você permitir.
bom quando o log access do squid vai aumentando o SARG ja nao consegue gerar relatorios, entao se vc quer que ele gere relatorios diarios e bom vc montar um sistema de rotate diario para seus logs ou entao
colocar no cron para ele gerar o primeiro relatorio, e depois limpar o log, para iniciar um outro relatorio no dia seguinte e limpar dinovo... assim se previne o acumulo e o sarga vai funcionar perfeitinho.
Cara ficou da hora o artigo paravens :)
abraços
Anderson