#!/bin/bash sortir() { echo "En cas de manque de place, faire un aptitude clean, faire le menage dans /var/log, utiliser du -sh /*" && echo "Il est aussi possible qu'un dossier servant de point de montage contienne des choses qui du coup sont invisibles" && exit } echo "Il faudrait inserer ici la prise en compte du parametre optionnel de dossier de sauvegarde des filtres et integrer les elements structurants quand ceux-ci seront a peu pres finalises, avec liste des variables, mettre des couleurs." #Partie a modifier en cas de changement de systeme ou de deplacement de fichiers utilises par le script: #echo -e "\aSur quel ordinateur sommes nous(GoBook/NEC)?" ; read choixo #egrep -q '^127\.0\.0\.1.+Nec.*localhost$' /etc/hosts && choixo=NEC grep -q "Nec" /etc/hostname && choixo=NEC if [ ${choixo:-GoBook} = "GoBook" ]; then #Creation d'un tableau comprenant les chemins des differents comptes Thunderbird sur le GoBook: choixo=GoBook && touslesche=("0-Ofset GoBook /home/stephaneascoet/.mozilla-thunderbird/o4nm0kmz.default/Mail/pop.online.fr" "1-Free GoBook /home/stephaneascoet/.mozilla-thunderbird/o4nm0kmz.default/Mail/pop.free.fr") d="/home/stephaneascoet/comptes/comptes-rendusfiltres" else #Creation d'un tableau comprenant les chemins des differents comptes Thunderbird du NEC: touslesche=("0-Wanadoo discussion /home/astephane/.mozilla-thunderbird/Profiles/b9hej5te.default/Mail/pop.orange-1.fr" "1-Free NEC /home/astephane/.mozilla-thunderbird/Profiles/b9hej5te.default/Mail/pop.free-1.fr" "2-Wanadoo d'origine /home/astephane/.mozilla-thunderbird/Profiles/b9hej5te.default/Mail/pop.orange.fr" "3-Ofset NEC /home/astephane/.mozilla-thunderbird/Profiles/b9hej5te.default/Mail/pop.free.fr") d="/home/astephane/sa-courrier/courriel/comptes-rendusfiltres" echo "On est sur le NEC et on exporte dans "$d fi #############Fin de la partie a modifier###################### #Test de l'espace disponible sur les systemes de fichiers utilises dossierpourcopies=${1:-/tmp} && dossierpourcopiesp=$dossierpourcopies/prefsthunderbird && es=`df -m $dossierpourcopies | tail -1l | tr -s " " | cut -f 4 -d " "` [ ${es:-0} -lt 1 ] && echo -e "\aEspace insuffisant sur " $dossierpourcopies && sortir e=`df -m $d | tail -1l | tr -s " " | cut -f 4 -d " "` [ ${e:-0} -lt 12 ] && echo -e "\aEspace insuffisant sur" `pwd` && sortir [ -d ${dossierpourcopiesp} ] || mkdir $dossierpourcopiesp #Nombre d'elements du tableau: totche=${#touslesche[*]} echo "Choisir le fichier de filtre a traiter parmi les "$totche" elements:" for ((i=0;i<$totche;i++)); do echo ${touslesche[${i}]} done read choixf cheminboite=`echo ${touslesche[${choixf}]} | cut -d " " -f 3` && m=`date +%j%Y%Hh%m` if [ ! -d ${cheminboite:-"/dev/zero"} ]; then echo "Mauvais choix "$choixf $cheminboite exit else [ -d $d ] || mkdir $d cd $d #On demarre vraiment quand tout est bon echo "Copie des regles de filtrage et des preferences" && cp -v $cheminboite/msgFilterRules.dat $dossierpourcopiesp/msgFilterRules.dat.$choixo.$choixf.$m cheminboites=`echo $cheminboite | egrep '.*Mail' -o` && lcheminboites=`echo $cheminboites | tr "/" " " | wc -w` && cheminp=`echo $cheminboites | cut -d "/" -f 1-$lcheminboites` && cp -v $cheminp/prefs.js $dossierpourcopiesp/prefs.js.$choixo.$m && cp -v /etc/fstab $dossierpourcopies/fstab.$choixo.$m && cp -v ~/.bash_history $dossierpourcopies/historiquebash.$choixo echo "Pour information:" && echo "iputils-clockdiff permet de mesurer les differences d'horloge entre serveurs et CmosPwd permet de s'attaquer au mot de passe du BIOS." && sleep 3 echo "Une fois un courriel traite, retenir le numero de la premiere ligne du bloc qui suit, il sera demande pour vider le debut du" && echo "fichier rapport "filtres$choixf" jusqu'a cet endroit. Appuyer sur 'q' pour fermer la liste. Bien que le trafic de courriels diminue drastiquement au fil des ans, il pourrait etre souhaitable d'agir sur les filtres pour eviter les eventuelles suppressions abusives de messages ainsi trouvees." && sleep 7 #Test a remplacer par un select case gerant 1)presence d'un fichier rempli;2)fichier vide;3)fichier absent(alerter+creer) taillejournal=`du $cheminboite/filterlog.html | cut -f 1` if [ -e $cheminboite/filterlog.html ]; then case $taillejournal in 0) echo "Bizarre, "$cheminboite"/filterlog.html est vide." && sleep 1 ;; *) echo "Conversion du rapport de filtres en cours..." && html2text $cheminboite/filterlog.html >> filtres$choixf #Vidage du fichier de rapport, a ecrire plus proprement de facon a le vider en le laissant sur place? mv -v $cheminboite/filterlog.html /tmp && touch $cheminboite/filterlog.html ;; esac else echo "Bizarre, pas de "$cheminboite"/filterlog.html. Re-creation a vide..." && touch $cheminboite/filterlog.html fi #Exploitation du compte-rendu des filtres generee en mode texte if [ -s filtres$choixf ] ; then #Test d'existence d'un fichier de filtres egrep -q 'deleted$|Delete$|supprim[^ ]+$' filtres$choixf && contenu=1 || contenu=0 if [ $contenu = 1 ] ; then #Test de presence d'indication de messages supprimes par un filtre. Si oui on l'affiche, sinon on le supprime. sleep 2 && egrep -n -B 3 'deleted$|Delete$|supprim[^ ]+$' filtres$choixf | less echo "Saisir avec prudence le numero de la premiere ligne du bloc non traite ou 'tout' pour tout supprimer." && read n else echo "Rien d'interressant a afficher dans le rapport de filtre" && n="tout" fi if [ $n = "tout" ] ; then #Suppression du compte-rendu si pas interressant ou demande de l'utilisateur mv -v filtres$choixf /tmp else #Vidage jusqu'a la ligne demandee par l'utilisateur echo -e "d"$n"\n:x" > /tmp/ordrespourvim vim -n -S /tmp/ordrespourvim filtres$choixf fi else echo "Pas de fichier "filtres$choixf" trouve. Si il ne restait plus rien a traiter et que rien n'a ete genere depuis par Thunderbird/Icedove, c'est normal. Sinon, c'est qu'il y a un bug dans le script et/ou son parametrage." fi echo && echo "Le rapport original de Thunderbird/Icedove a ete mis dans /tmp. Les preferences ont ete mises dans:" && file $dossierpourcopiesp/msgFilterRules.dat.$choixo.$choixf.$m file $dossierpourcopiesp/prefs.js.$choixo.$m echo "Il est conseille d'archiver ces derniers. Si le systeme est bien configure, /tmp sera vide au prochain" && sleep 1 && echo "demarrage. Les fichiers seront de toute facon ecrases a la prochaine execution de ce script. Faire le menage dans les" && echo "brouillons de messages aussi. Si tous les courriels ecartes par erreur et ceux enregistres en fichier ont ete vus, les poubelles suivantes peuvent etre videes:" && echo "-du compte courriel" && echo "-des 'dossiers locaux'" && echo "-et du systeme." && echo "Une fois qu'il y a assez de place sur la partition home, re-activer le compactage dans Thunderbird/Icedove." && echo "En cas de doute sur le fonctionnement de la redirection Ofset, envoyer un courriel aux deux adresses(veritable et redirection) en meme temps et surveiller son" && echo "arrivee." fi alias la='ls -al'