72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
#Koi: on vérifie que chaque email possède son répertoire et vice et versa (on supprime sinon)
 | 
						|
#Kan: 20/06/2022
 | 
						|
#Ki: fab
 | 
						|
 | 
						|
#on récupère toutes les variables et mdp
 | 
						|
# on prend comme source des repertoire le dossier du dessus ( /kaz dans notre cas )
 | 
						|
KAZ_ROOT=$(cd "$(dirname $0)"/..; pwd)
 | 
						|
. "${KAZ_ROOT}/bin/.commonFunctions.sh"
 | 
						|
setKazVars
 | 
						|
 | 
						|
cd $(dirname $0)/..
 | 
						|
. "${DOCKERS_ENV}"
 | 
						|
 | 
						|
DOCK_DIR=$KAZ_COMP_DIR
 | 
						|
 | 
						|
SETUP_MAIL="docker exec -ti mailServ setup"
 | 
						|
 | 
						|
#on détermine le script appelant, le fichier log et le fichier source, tous issus de la même racine
 | 
						|
PRG=$(basename $0)
 | 
						|
RACINE=${PRG%.sh}
 | 
						|
 | 
						|
# emails et les alias KAZ déjà créés
 | 
						|
TFILE_EMAIL=$(mktemp /tmp/test_email.XXXXXXXXX.TFILE_EMAIL)
 | 
						|
 | 
						|
#on stocke les emails et alias déjà créés
 | 
						|
(
 | 
						|
  ${SETUP_MAIL} email list | cut -d ' ' -f 2 | grep @
 | 
						|
  ${SETUP_MAIL} alias list | cut -d ' ' -f 2 | grep @  
 | 
						|
) > ${TFILE_EMAIL}
 | 
						|
 | 
						|
 | 
						|
#did on supprime le ^M en fin de fichier pour pas faire planter les grep 
 | 
						|
sed -i -e 's/\r//g' ${TFILE_EMAIL}
 | 
						|
 | 
						|
rep_email="/var/lib/docker/volumes/postfix_mailData/_data"
 | 
						|
 | 
						|
#étape n°1: pour chaque répertoire, on vérifie que l'email existe
 | 
						|
echo "Début Etape n°1: on liste les répertoires des emails et on vérifie que les emails correspondant existent"
 | 
						|
 | 
						|
ls -Ifilter -Itmp ${rep_email} | while read fin_email; do
 | 
						|
  ls ${rep_email}/${fin_email} | while read debut_email; do
 | 
						|
    email=`echo ${debut_email}@${fin_email}`
 | 
						|
    #est-ce que l'email existe ?
 | 
						|
    nb_ligne=$(grep "^${email}$" ${TFILE_EMAIL} | wc -l)
 | 
						|
    if [ ${nb_ligne} -gt 0  ];then
 | 
						|
      false
 | 
						|
    else
 | 
						|
      #suppression du répertoire
 | 
						|
      echo rm ${rep_email}/${fin_email}/${debut_email} -rf
 | 
						|
    fi    
 | 
						|
  done
 | 
						|
  #si le répertoire domaine est vide, on le supprime
 | 
						|
  find ${rep_email}/${fin_email} -maxdepth 0 -type d -empty -delete
 | 
						|
done
 | 
						|
echo "aucune commande n'a été lancée, possible de le faire à la main"
 | 
						|
echo "Fin Etape n°1"
 | 
						|
 | 
						|
#Etape n°2: pour chaque email, on vérifie que le répertoire existe
 | 
						|
echo "Début Etape n°2 n°2: on liste les emails et on vérifie que les répertoires correspondant existent"
 | 
						|
cat ${TFILE_EMAIL} | while read email; do
 | 
						|
  debut_email=$(echo ${email} | awk -F '@' '{print $1}')
 | 
						|
  fin_email=$(echo ${email} | awk -F '@' '{print $2}')
 | 
						|
  if [ -d ${rep_email}/${fin_email}/${debut_email} ];then
 | 
						|
    true
 | 
						|
  else
 | 
						|
    echo "Attention, le répertoire ${fin_email}/${debut_email} n'existe pas alors que l'email existe!"
 | 
						|
  fi    
 | 
						|
done
 | 
						|
echo "Fin Etape n°2"
 |