How Can We Help?
Problemas de espacio en frontal y como eliminar archivos de imágenes
Autolocal sufrió una caída hoy por no tener espacio disponible en el servidor Web 192.168.161.78.
Después de borrar logs históricos de /var/logs/httpd, sólo liberaraba un 1% de espacio en el directorio /
Revisando que directorios son los más voluminosos, se detecta que los avisos y sus imagenes son almacenadas en una estructura de directorios montada en base a un id aleatorio a partir de la siguiente ruta /web/autolocal_chile_home/images_avisos/, que no hace posible borrar directorios completos pues pueden contener archivos aún en uso.
Se decide utilizar una consulta sql sobre la base de datos para poder identificar los archivos de imagenes de autos por fecha de carga. A continuación se explica el procedimiento aplicado.
Conectado a 192.168.161.91 y en la VPN de mercurio, mediante Mysql Front se ejecuta una consulta como la siguiente
select count(*) rm from imagen where year(imag_fechacarga)=2012
El resultado de esta consulta arroja un total de 44337 archivos de imagen
Se ejecuta a continuación el siguiente query para exportar a un archivo de texto:
select concat('/web/autolocal_chile_home/images_avisos/',imag_path) rm from imagen where year(imag_fechacarga)=2012
Sobre los resultados, botón derecho, Export, Text File:

Guardar con un nombre representativo

Utilizar las siguientes opciones al guardar:

presionar Run, Luego Close. El archivo debe ser subido por ftp al servidor de autolocal web, en la carpeta /home/cjofre/9999, donde 9999 representa el año o el concepto de segmentacion temporal utilizado en el query.

Mediante putty, nos conectamos al servidor

una vez en el directorio de trabajo, ejecutamos el siguiente comando:
xargs rm -f < 2012.txt
Esto realizará la eliminacion de cada archivo informado en cada linea del archivo de texto subido. Antes de la eliminación teníamos disponible 18Gb y despues de borrar los archivos de un año obtenemos espacio disponible de 35 Gb.

Si el archivo txt a procesar con xargs es muy grande, se sugiere particionarlo con el comando split. Se ilustra a continuación con el archivo 2013.txt

como el archivo tiene 41545 filas, realizaremos un split de 12000 lineas cada uno
split -l 12000 2013.txt
a continuación se ilustra el resultado

Se han generado los archivos xaa, xab, xac y xad
Por cada uno de ellos realizaremos xargs rm -f , por ejemplo:
xargs rm -f < xaa