Muchos de nosotros hemos tenido alguna vez que lidiar con problemas en la cola de correo de Qmail, ya sea una cola corrupta, llena u otro tipo de problema.
Queue-repair es una herramienta que nos permite reparar la cola de correo, o recrear su estructura completamente entre otras cosas.
Los requerimientos de esta herramienta son Python 1.5.2 o superior y lógicamente Qmail.
La documentación de queue-repair está disponible en este enlace, vamos a repasarla un poco:
Instalación:
- Descarga la herramienta.
- Descomprimir.
- Copiar los contenidos donde deseemos.
tar xzf queue-repair-version.tar.gz
mkdir /usr/local/lib/queue-repair cp -a queue-repair-version/* /usr/local/lib/queue-repair/
El modo de uso es el siguiente (recordad parar qmail antes de empezar):
queue_repair.py [options] [conf-qmail]
Y algunas de sus opciones son:
- –test / -t : Ejecutar en modo de pruebas, nos mostará los errores y las posibles soluciones sin modificar nada.
- –repair / -r : Ejecutar en modo de reparación, tratará de reparar todos los errores que encuentre, pero las carpetas de cola de correo deben seguir existiendo (queue, queue/mess, queue/info, etc).
- –create / -c : Qmail tratará de arreglar todos los problemas que encuentre, y recreará las carpetas y estructura que considere necesario.
- –split N / -s N :Por defecto su valor es 23, es el número de subdirectorios que tendrá la cola de correo, en los cuales se almacenarán los mensajes pendientes (realmente es algo más complejo, no obstante el valor por defecto siempre me ha venido bien).
- –bigtodo / -b : Para qmails parcheados con el parche big-todo. También sirve para convertir la cola a big-todo (será necesario recompilar para que funcione con el parche).
- –no-bigtodo / -n: Será qmail quien averigue si utilizamos o no el parche big-todo.También sirve para convertir la cola a no-bigtodo (será necesario recompilar para que funcione sin el parche).
El modo más común de reparar o recrear una cola de correo es el siguiente:
Crear una cola de correo ficticia, lo cual nos servirá para comprobar que la herramienta hace su tarea de forma correcta sin poner en peligro el servicio:
./queue_repair.py -c -s 23 --no-bigtodo .
Con este último comando, debería haber creado la estructura de carpetas de forma correcta en la ubicación que le hayamos indicado:
drwx------ 2 qmails qmail 4096 mar 25 17:39 bounce drwx------ 25 qmails qmail 4096 mar 25 17:39 info drwx------ 2 qmailq qmail 4096 mar 25 17:39 intd drwx------ 25 qmails qmail 4096 mar 25 17:39 local drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 lock drwxr-x--- 25 qmailq qmail 4096 mar 25 17:39 mess drwx------ 2 qmailq qmail 4096 mar 25 17:39 pid drwx------ 25 qmails qmail 4096 mar 25 17:39 remote drwxr-x--- 2 qmailq qmail 4096 mar 25 17:39 todo
Ahora ya podemos recrear la cola de correo verdadera, suponemos que qmail se encuentra en /var/qmail, es donde recrearemos la cola de correo (es recomendable eliminar o mover la cola antes, es la carpeta queue):
cp -Rp /var/qmail/queue /var/qmail/queue.bak rm -rf queue ./queue_repair.py -c -s 23 --no-bigtodo /var/qmail
Una vez finalizado, reiniciamos qMail y revisamos los logs para verificar que todo es correcto, recordad revisar la documentación para información más detallada.