clean_squid
Publicado por Edson G. de Lima 11/02/2005
[ Hits: 6.656 ]
Se seu squid anda lerdo, às vezes precisa ser reiniciado, ou às vezer fica dando erro de url, então está na hora de você deixá-lo novinho em folha...
Apenas preencha o caminho de seu squid, de seu squid.conf e o seu editor favorito... O script fará o resto!
#!/bin/bash # Altere as 3 primeiras variáveis com seu editor favorito # e com o caminho do Squid e do squid.conf EDITOR=vi SQUID=/usr/sbin/squid CONF=/etc/squid/squid.conf BKPLOG=/root/dir_clean LOGSTART=$BKPLOG/msg-squid.txt HOJE=$(date +%d_%m_%Y) DIRCACHE=$(grep ^cache_dir $CONF | cut -f3 -d' ') ARQCACHE=$(grep ^cache_log $CONF | cut -f2- -d' ') ARQSTORE=$(grep ^cache_store_log $CONF | cut -f2- -d' ') ARQACCESS=$(grep ^cache_access_log $CONF | cut -f2- -d' ') PID=$(grep 'pid_filename /' $CONF | cut -f3- -de | cut -c2-) echo "Este script é uma das funções de um 'script maior' que utilizo para" echo "gerenciar o Squid que administro, caso queira a versão completa" echo "mande um e-mail para Xxoin@yahoo.com.br" echo sleep 5 echo "Antes de prosseguir, certifique-se de que já tenha preenchido todas as" echo "variáveis que contêm o caminho para os arquivos que serão utilizados." echo echo echo "---> Vamos então ao trabalho!" sleep 3 echo echo "Esta função irá fazer uma limpeza do cache e dos arquivos de log," echo "utilize-a se o Squid estiver travando com muita freqüência..." echo "--> Deseja continuar? --> s / n" read s_n if [ $s_n = s ]; then echo echo "Forçando a parada do Squid, aguarde..." killall -9 squid sleep 3 echo echo "Forçando a remoção do PID do Squid..." if [ -e $PID ]; then rm -f $PID else echo "O PID já tinha sido removido... Não requer nenhuma ação." fi echo echo echo "Nossa próxima etapa será 'detonar' os arquivos de log do Squid" echo "Para fins de (possível) auditoria, irei salvar uma cópia de segurança do access.log" if [ ! -d $BKPLOG ]; then echo echo "Vou criar o diretório $BKPLOG para colocar um back-up do access.log" mkdir $BKPLOG else echo echo "Aproveitando seu diretório $BKPLOG..." fi echo echo "Salvando cópia de segurança do seu access.log em $BKPLOG..." echo "Dependendo do tamanho... isto pode demorar um pouco..." cp -f $ARQACCESS $BKPLOG/$HOJE\_access.log echo sleep 3 echo "LIMPANDO os arquivos de log..." cat /dev/null > $ARQCACHE cat /dev/null > $ARQACCESS cat /dev/null > $ARQSTORE echo sleep 3 echo "Removendo os diretórios de cache." rm -rf $DIRCACHE/* echo echo "REcriando os diretórios de cache..." sleep 3 echo $SQUID -z sleep 5 echo "Reiniciando o Squid..." $SQUID echo echo "Aguarde apenas alguns segundos..." sleep 5 echo echo "Mostrando status do Squid (DEVEM aparecer os dois processos básicos" echo "do Squid: processo $SQUID e processo (squid):" echo ps -ax | grep squid echo sleep 5 echo "Listando o -PID- do Squid." echo "Certifique-se de que o PID corresponde ao número do processo" echo "que está com a palavra (squid) entre parêntesis..." echo cat $PID echo echo "Após a finalização, verifique no log gerado, os campos 'exited due to signal x'" echo "e identifique as causas de parada com o comando: man signal" echo "--> Deseja ver o log desta reinicialização? --> s (recomendado) / n" read s_n if [ $s_n = s ]; then cat /var/log/messages | grep squid > $LOGSTART echo >> $LOGSTART cat $ARQCACHE >> $LOGSTART echo >> $LOGSTART echo >> $LOGSTART # Texto que será inserido no final dos logs (no arquivo /root/msg_squid.txt) echo LEIA ISTO: >> $LOGSTART echo ---------- >> $LOGSTART echo >> $LOGSTART echo Se o squid continuar travando após este procedimento faça o seguinte: >> $LOGSTART echo Aplique o comando: killall -9 squid . Depois reinicie o squid em modo debug, nível 9 >> $LOGSTART echo aplicando o comando: squid -d 9 . Assim estaremos depurando os logs... >> $LOGSTART echo Depois abra o arquivo /var/log/squid/cache.log e verifique as mensagens de erro. >> $LOGSTART echo >> $LOGSTART echo >> $LOGSTART # ------------------------------------------------------------------------------ echo echo "Vou abrir as mensagens desta inicialização." echo "Abrindo arquivo $LOGSTART" echo "Veja a NOTA no final do arquivo." sleep 5 $EDITOR $LOGSTART else echo echo "Saindo sem filtrar arquivo com mensagens da reinicialização do Squid." fi else echo "Sainda sem fazer nada." echo "Se você deseja executar este script, utilize a letra s minúscula." fi # =============================================================== ### ------------- Edson de Lima ### --------------------------- Campo Grande/MS, Fev_2005
del_user - cuida dos 4 passos para remover um usuário do sistema
Script para Montar Partição/Unidade ...
Fazendo backup de vários arquivos no LINUX
Teste do /admin/scripts Alteração
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Problema com nome composto e organização na tela do yad (0)
Formatando cartão de memoria que nao formata[AJUDA] (18)
Primeira vez utilizando Linux Ubuntu 22.04 e já tenho problemas… (5)
warsaw parou de funcionar após atualização do sistema (solução) (1)