73 lines
2.4 KiB
Bash
Executable File
73 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}"
|
|
. "${KAZ_KEY_DIR}/SetAllPass.sh"
|
|
|
|
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"
|