squidclean.sh

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

[ Hits: 5.027 ]

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

Validador mac-address em shell script

Script iniciante para adm. de usuarios e quotas

Monitorando tentativas de conexões

Convertendo rotas Linux para Fortigate

Script para formatação de disquetes em modo texto


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts