Squid – Disco Duro Completo / Squid no inicia


Introducción

En mi trabajo, la red se encuentra dividida en tres subredes, en todas ellas se controla el acceso a internet mediante el proxy Squid con dos servidores distintos:

Uno proporciona el servicio de proxy para la red 192.168.2.x y el otro servidor controla las redes 192.168.1.x y 192.168.3.x

Cabe destacar que la principal y más importante es la 1.x

Todo está configurado y no hay mucha necesidad de “meter mano”, solo cuando se desea habilitar un contenido o web específica o crear una cuenta de usuario para el proxy.

Sin embargo, una mañana simple y tranquila me informan textualmente que no hay “internet”

Los síntomas

Como buena persona trabajadora en mi área procedí a chequear el pc afectado, grande fue mi sorpresa al percatarme que:

  1. El cable de red no estaba desconectado
  2. Existía respuesta “ping” del equipo al servidor.
  3. Otras personas empezaron a decirme que tampoco tenían internet

Luego de eso y chequeando la red 2.x me percate que si tenían salida a internet. Todo funcionaba bien.

El problema fue al ingresar al terminar del servidor y al darle al comando # /etc/init.d/squid restart este no detenía el servicio de squid mostrando un lindo mensaje de [FAILED] pero posteriormente mostraba burlescamente el mensaje de [OK]. Digo burlescamente porque si bien mostraba el mensaje que el servicio de squid fue iniciado este no levantaba y la red seguía caída.

Bitmap_VS_SVG.svg

El diagnostico

Ya me comencé a preocupar. El día anterior todo funcionaba bien, no había modificado nada en los servidores y sin embargo el problema estaba allí, no había acceso a internet desde una parte de la red.

Con la ayuda de mi amigo RC5 (experto en Linux) mire los registros en /var/log/squid/squid.out el cual me ayudo a percatarme del problema:

02

squid: ERROR: Could not send signal 0 to process …
FATAL: Failed to make swap squid: ERROR: Could not send signal

Así es, el disco duro estaba lleno y basto un df- h para corroborar la dramática situación
03

La solución

Esta vendría siendo la primera solución la cual debería funcionar sin problema alguno, también les dejo un sitio donde hay un script bach que hace la limpieza.

  • Borrar todo en /var/log/squid

Sin embargo esto no me soluciono nada por lo que decidí inspeccionar el servidor físicamente y chequear el disco duro, con lo que me lleve una gran sorpresa:

  • En el directorio /var/www/sarg existían carpetas de cache de squid con mas de 2 años de antigüedad, las cuales contenían obviamente archivos que ocupaban todo la capacidad del disco duro.

Consejo:

Este directorio deberia ser borrado automaticamente cada 3 meses, si no es así se deberá hacer manual hasta configurar squid.conf

Anexo – Limpiar caché del servicio SQUID en GNU/Linux CentOS 5.6

Publicado por lsilva en http://www.centosni.net/limpiar-cache-del-servicio-squid-en-gnulinux-centos-5-6/
 

Hola, comunidad, acá un breve manual para limpiar el caché del servicio SQUID en GNU/Linux CentOS 5.6.

El servicio SQUID en GNU/Linux permite brindar Internet a los equipos clientes de la LAN pero a su vez este servicio , muchas veces llamado Proxy o Caché, se llena la partición asignada y es necesario vaciar dicha partición.

Para efectos prácticos se puede crear un script de nombre limpiar.sh, el cual contiene comandos de ejecución para eliminar los directorios donde se van alojando al caché,

Se crea el archivo de nombre limpiar.sh;

touch limpiar.sh

El contenido del script a continuación;

#!/bin/bash

# Fecha de creación: 02/12/2011

# Licencia: GPL v2.

# Creador: Lennin Silva C

# Versión: 1.0

echo “Deteniendo el servicio SQUID”

service squid stop

echo “Ingresando al directorio /var/spool/squid”

cd /var/spool/squid

echo “borrando los directorios del caché”

rm -Rf 0*

echo “Limpieza terminada con éxito”

echo “Ingresando a los logs del servicio SQUID para ser borrados”

cd /var/log/squid

echo “Borrando los access.log del servicio SQUID”

rm -Rf access.log*

echo “Borrando los caché.log del servicio SQUID”

rm -Rf cache.log*

echo “Borrando los store.log del servicio SQUID”

rm -Rf store.log*

echo “Creando el archivo vacío access.log del servicio SQUID”

touch access.log

echo “Asignando permisos al archivo access.log”

chmod 640 access.log

echo “Asignando el dueño al archivo access.log”

chown squid.squid access.log

echo “Creando el archivo vacío cache.log del servicio SQUID”

touch cache.log

echo “Asignando permisos al archivo cache.log”

chmod 640 cache.log

echo “Asignando el dueño al archivo cache.log”

chown squid.squid cache.log

echo “Creando el archivo vacío store.log del servicio SQUID”

touch store.log

echo “Asignando permisos al archivo store.log”

chmod 640 store.log

echo “Asignando el dueño al archivo store.log”

chown squid.squid store.log

echo “fin del script”

Se asignan los permisos necesario al script;

chmod 755 limpiar.sh

Se ejecuta el script;

./limpiar.sh

Si desea agregarlo a una tarea programada edítelo con la siguiente sintaxis;

crontab -e

A continuación ingrese los parámetros, suponiendo que lo ejecutará a las 11:59 P.M, cada 28 de todos los meses, cualquier día de la semana y el script esta ubicado en el directorio del usuario root;

59   23   28   *   * /root/limpiar.sh

Donde, el * representan todos los meses y los días de la semana.

Espero haya sido de utilidad.

Saludos. :)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s