squidclean.sh
Publicado por Edson G. de Lima 30/10/2005
[ Hits: 5.495 ]
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.
#!/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
Abrindo Sessão Cluster Beowulf
RWm4aMp3 - converter arquivos de música m4a para mp3
"Wnslookup" - Monitorando os DNS da Rede
Enviar gráficos 3D pela janela de chat no Kopete
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com som ruim no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (2)
Como programar um sistema de controle para distribuições linux em c? (3)









