#!/bin/sh
#
# dspam-clean
#
# Elimina directorios de dspam que se refieren a buzones inexistentes
#
# Copyright (c) 2009 - 2015  Felipe Eduardo Sanchez Diaz Duran
# Todos los derechos reservados
#

VERSION="0.6.2"
FECHA="20170131"

####### Configuracion #######

# Directorio de datos de dspam
DSPAMDIR=/var/dspam

VERBOSE=1

#############################


echo "Iniciando limpieza de usuarios virtuales inexistentes de DSPAM"
echo "en directorio ${DSPAMDIR}/data"

cd ${DSPAMDIR}/data

 ls | while read i; do
   # Si tiene un @ entonces es un usuario virtual
   if echo "$i" | grep "@" &> /dev/null ; then
      dom=`echo "$i" | cut -f2 -d@`
      nombre=`echo "$i" | cut -f1 -d@ | sed 's/\./:/g'`
      usuario=`grep "$dom" /var/qmail/control/virtualdomains | cut -f2 -d:`
      directorio=`egrep "^$usuario" /etc/passwd | cut -f6 -d:`
      if [ ! -d  "$directorio/users/$nombre" ]; then
         [ $VERBOSE -eq 1 ] && echo "Eliminando $i"
	 rm -r ${DSPAMDIR}/data/$i
      fi
   else
      # Si no tiene un @ entonces es un usuario del sistema (no virtual)
      if ! egrep -q "^$i:" /etc/passwd; then
         [ $VERBOSE -eq 1 ] && echo "Eliminando $i"
	 rm -r ${DSPAMDIR}/data/$i
      fi
   fi
 done 
