Limpando os diretórios de cache do Squid.
Quando vamos configurar o squid.conf, existem duas TAGs que fazem menção ao usuário e grupo do daemon dos processos do squid:
- cache_effective_user
- cache_effective_group
Existe também, uma TAG que irá apontar para os diretórios de cache:
- cache_dir
Quando iniciamos o Squid pela primeira vez, ele cria os diretórios de cache no caminho: DIRETORIO/squid/SUB_DIRETORIOS (normalmente /var/cache/squid/* - onde * é igual a vários diretórios numerados) e atribui como dono e grupo destes diretórios, o nome mencionado naquelas TAGs do squid.conf.
Para facilitar a compreensão, vamos admitir que o caminho para o cache seja configurado assim no squid.conf:
cache_dir ufs 100 16 256
Nesta situação nossa árvore de diretórios ficaria:
/var/cache/log/squid/*
Onde o asterisco substitui uma seqüência de diretórios numerados.
Vamos admitir também que o usuário/dono do daemon do Squid seja proxyadm, então teríamos no squid.conf:
cache_effective_user proxyadm
cache_effective_group proxyadm
cache_effective_group proxyadm
Um erro muito comum e que com freqüência ocorre; é quando o administrador (como root) vai limpar os diretórios de cache, ele aplica o comando:
# rm -rf /var/cache/squid
E nesta situação, ele deleta também o diretório "squid", que pertence ao proxyadm.
Agora aparecerá um problema: quando o Squid for Reiniciado ele NÃO irá criar os diretórios de cache, irá aparecer um erro de permissão.
Nesta situação, o administrador (como root), descobre que não existe o diretório /var/cache/squid. Então ele precisa ser criado... só que este diretório ficará com dono/grupo sendo o root. E o erro de permissão irá continuar...
A solução então deve ser:
# chown proxyadm /var/cache/squid
# chgrp proxyadm /var/cache/squid
Agora sim, iremos criar os diretórios de cache com o famoso:
# squid -z
O erro deixará de ocorrer. Já podemos "startar" o Squid.
A solução definitiva para este problema consiste em NÃO se administrar o Squid como root e caso vá fazê-lo, na hora de limpar os diretórios de cache, utilize o comando:
# rm -rf /var/cache/squid/*
Um "asterisco" que irá lhe poupar tempo... (isto se já não lhe causou sérias dores de cabeça)...
Muito bom, eu preciso limpar o cache squid onde faço estagio o problema é que pesquisei alguns comandos para fazer isso e fiquei com receio de usá-los sem saber. Agora sim posso fazer sem medo.
ResponderExcluir