squidclean.sh

Publicado por Edson G. de Lima 30/10/2005

[ Hits: 5.234 ]

Download squidclean.sh




Script para fazer limpeza dos diretórios de cache e dos arquivos de log (do Squid, claro :).

Como ele roda de modo não interativo, é ideal para ser colocado no crontab.

  



Esconder código-fonte

#!/bin/bash

# Autor: Edson G. de Lima
# Mail: Xxoin[thanks]yahoo.com.br


# Edite as variáveis abaixo conforme seu Sistema:

# Declarando as variáveis:
# ------------------------
# Path do Squid:
SQUID=/usr/sbin/squid
# Path do squid.conf
SQUIDCONF=/etc/squid/squid.conf
# Path do Sarg
SARG=/usr/bin/sarg
# Arquivo que será gerado com os logs da inicialização do Squid:
LOGSTART=/root/squid.txt
# Processo copy do Squid:
SQUIDPROC=$(ps -ax | grep \(squid\) | head -1 | cut -d' ' -f2)
# Diretório raíz do cache do Squid:
DIRCACHE=$(grep "cache_dir ufs /" $SQUIDCONF | cut -df -f2- | cut -d' ' -f2)
# Arquivo de log do Squid:
ARQCACHE=$(grep "cache_log /" $SQUIDCONF | cut -dg -f2- | cut -d' ' -f2)
# Arquivo de histórico do cache do Squid:
ARQSTORE=$(grep "cache_store_log /" $SQUIDCONF | cut -dg -f2- | cut -d' ' -f2)
# Arquivo de logs de acesso ao Squid:
ARQACCESS=$(grep "cache_access_log /" $SQUIDCONF | cut -dg -f2- | cut -d' ' -f2)
# Arquivo .pid do Squid:
PID=$(grep "pid_filename /" $SQUIDCONF | cut -de -f3- | cut -c2-)

# Declarando a função para limpar o cache:
# ----------------------------------------
CLEAN()
{
if [ $DIRCACHE != /var/spool/squid -a $DIRCACHE != /var/cache/squid ] || [ $DIRCACHE =  ]; then
echo 
echo Este e-mail foi gerado pelo script squidclean.sh pelo seguinte motivo:   \
Não foi encontrado no squid.conf, o local dos Diretórios de Cache!   \
Corrija esta situação, editando a TAG \"cache_dir\" no squid.conf \
com o caminho dos diretórios de cache.\
Se esta TAG estiver correta no squid.conf, edite a variável DIRCACHE \
do script squidclean.sh, com o caminho apontado no seu squid.conf.   \
Nada foi feito... | mail root
echo 
exit 0
fi

# Parando o Squid:
kill $SQUIDPROC

# Forçando a parada do Squid:
killall -9 squid

# Forçando a remoção do PID do Squid:
if [ -e $PID ]; then
rm -f $PID
fi

# Gerando relatório com o Sarg:
if [ -e $SARG ]; then
$SARG -d $(date +%d/%m/%Y) 
fi

# Limpando os arquivos de log:
cat /dev/null > $ARQCACHE
cat /dev/null > $ARQACCESS
cat /dev/null > $ARQSTORE

# Removendo os diretórios de cache:
rm -rf $DIRCACHE/*

# Reiniciando o Squid:
if [ -e /etc/init.d/squid ]; then
/etc/init.d/squid start
else

# REcriando os diretórios de cache:
$SQUID -z
$SQUID -D -sYC
chmod 755 -R $ARQCACHE
fi

# Gerando log da inicialização:
PROCNOVO=$(ps -ax | grep \(squid\) | head -1 | cut -d' ' -f2)

echo $(date) > $LOGSTART
echo Veja abaixo os logs de inicialização do Squid: >> $LOGSTART
echo >> $LOGSTART
echo >> $LOGSTART
cat /var/log/messages | grep squid >> $LOGSTART
echo >> $LOGSTART
cat $ARQCACHE >> $LOGSTART
echo >> $LOGSTART
echo >> $LOGSTART
echo Os dois números abaixo devem ser iguais. >> $LOGSTART
echo >> $LOGSTART
# Mostrando o processo copy-squid:
echo O processo cópia do Squid é: $PROCNOVO >> $LOGSTART
# Listando o -PID- do Squid:
echo O conteúdo do arquivo squid.pid é: $(cat $PID) >> $LOGSTART
echo >> $LOGSTART
}

# Executa função CLEAN: 
CLEAN
exit


Scripts recomendados

Testa DNS da sua conexão e reporta perda(s) de pacotes

Cria cabeçalhos para shell scripts

Monitor de usuarios

Lixeira para console

setwall - mude o wallpaper


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts