Como borrar los adjuntos de los mails de mailman

Los usuarios pocas veces se percatan de que los servicios que usan tienen unos recursos limitados y algunos tienen la sana costumbre de usar una lista de correo como si se tratase del envío de un mail a otra persona. ¿Pero qué ocurre cuando un usuario manda un correo a una lista de correo con cientos de suscritos en ella? ¿y encima que el administrador de la lista permita la moderación de estos mails? pues primero de todo que este fichero se tiene que mandar a todos y cada uno de los miembros de la lista, haciendo que el servidor tenga que enviar un montón de datos que quizás no serán nunca leídos; la segunda que estos datos se quedan en el servidor en los archivos, unos archivos que probablemente ningún otro usuario descargará.

Así que ante esto, y con el permiso del administrador de la lista, vamos a proceder con el vaciado de adjuntos de una lista de correo.

Antes de empezar tenemos que analizar donde se guardan estos archivos:
– directorio attached de los archivos
– fichero mbox de la lista

así que tenemos los adjuntos 2 veces, cosa que incrementa por 2 el tamaño total de la lista.

Para borrar los archivos primero borraremos los adjuntos:

# cd /var/lib/mailman/archives/private/lista/attached/
# rm -Rf *

Y a continuación vamos a regenerar el .mbox a partir de los archivos de la lista sin sus adjuntos.

# cd /var/lib/mailman/archives/private/lista/
# for i in */*; do formail > mbox; done

Una vez creado el fichero en formato mbox, vamos a sobreescribir estos datos sobre el actual mbox de la lista:

# cat mbox > /var/lib/mailman/archives/private/lista.mbox/lista.mbox
# rm mbox

Hacemos el cat, para no modificar los permisos que tiene el fichero lista.mbox

y para verificar que sea correcto y haya coherencia con los datos vamos a rehacer los archivos a partir de este mbox:

# /usr/lib/mailman/bin/arch lista

Una vez hecho esto, podemos verificar que tanto el fichero .mbox como el directorio de archivo de la lista han adelgazado notoriamente, pero si accedemos a los archivos del mes actual, veremos que nos ha creado un montón de mails “sin asunto” y dentro mails mal formatados. Como al crear la lista se le pidió expresamente al administrador que no permitiese el uso de adjuntos en los mails, le vamos a dar una lección de qué ocurre cuando no nos hace caso y borraremos estos mails erróneos (si alguien tiene la solución, este post tiene los comentarios abiertos).

Para ello nos ponemos en el directorio actual del mes y modificamos el fichero index.html

# cd /var/lib/mailman/archives/private/lista/2012-February/
# vi index.html

Buscaremos los mails sin el asunto y borraremos las líneas. Vienen correlativos, y si el administrador ha sido malo, va a haber muchos de ellos y nos podemos morir borrando, así que mi recomendación es usar la potencia de vim y eliminar mil o diezmil líneas de golpe con ESC d10000 INTRO. Si nos pasamos de la raya pues le damos a ESC u y vamos mas despacito. Para borrar una línea entera simplemente es ESC dd.

A continuación vamos a borrar también los mails que contenían el adjunto, antes pero recomiendo hacer un backup de este directorio, ya que es posible que el comando para borrar los mails nos borre también mails que nos interesa preservar. Recomiendo entonces realizar este vacío de la lista a principios de mes, que aún no hay muchos mails en el archivo y puede ser más sencillo de recuperar.

# cd ..
# cp -Rp 2012-February{,.old}

¡Y ahí vamos!

find . -type f -exec grep -q "Sin asunto" {} ; -exec rm -f {} +

Entonces verificamos que tenemos todos los archivos en

https://urllistas/pipermail/lista/2012-February/thread.html

Los mails que no estén simplemente los copiamos del backup que hemos hecho:

# cd /var/lib/mailman/archives/private/lista/2012-February/
# cp -Rp ../2012-February.old/000123.html .

Para que nos quede el fichero .mbox con estos permisos (si tenemos otras listas podemos verificar qué permisos tienen otros .mbox):

tesla:/var/lib/mailman/archives/private/lista.mbox# ls -lh
total 25M
-rw-r--r-- 1 list list 13M  4 feb 22:29 lista.mbox

Y esto es todo amigos, ¡ahora a liberar espacio! :D

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.