X-Git-Url: http://gitweb.pimeys.fr/?p=config-20-100.git;a=blobdiff_plain;f=.procmailrc;h=d6d636b1305fcbbc84e6baeee291b1d758a52531;hp=1449420a092090f7f49aeb4c7a243d5ea3258f6a;hb=fb3b8ea6d4c4dbadcbc1db2c33fdd18a72fe0920;hpb=7b0408169370872426a02fd6959e1733a57b885a diff --git a/.procmailrc b/.procmailrc index 1449420..d6d636b 100644 --- a/.procmailrc +++ b/.procmailrc @@ -17,7 +17,7 @@ # Ce fichier est mis à votre disposition par des cranseux sans aucune garantie. # Nous sommes un certain nombre à l'utiliser nous-mêmes, souvent dans une version # légèrement modifiée. -# * Nous ne sommes pas responsable si vous perdez des mails ou si ils sont mal triés. +# * Nous ne sommes pas responsables si vous perdez des mails ou si ils sont mal triés. # * Pensez à copier également les autres fichiers si vous utilisez les include. # * Vous pouvez rester à jour en trackant le dépôt git : http://git.crans.org/git/fichiers_configuration.git # (on corrige des trucs et on rajoute parfois des nouveaux/meilleurs tris) @@ -34,7 +34,7 @@ # (pour l'instant commentés par #~#) # Ils doivent être tous les trois dans ${CONFIGDIR} # * Le premier, custom.high.rules contient des règles qui overrident tout -#  le comportement ce .procmailrc,pour des mails qui doivent être classés +#  le comportement ce .procmailrc, pour des mails qui doivent être classés # sans autre condition. # * Le deuxème, custom.normal.rules doit contenir la plupart de vos règles # personnelles, il est géré après les mails envoyés par le Cr@ns mais avant @@ -44,7 +44,6 @@ # exemple servir à définir un dossier par défaut autre que .INBOX - ################################################################################ ##### Commentaires ##### ################################################################################ @@ -71,7 +70,7 @@ # | | |-[B] bureau # | | |-[B] crous-crans # | | |-[+B] disconnect -# | | |-[$*+] impression (sans modif_solde, munin, print_status) +# | | |-[$*+] impression (sans modif_solde, munin) # | | |-[$*+] respbats (bot-free) # | | |-[+B] spoof # | | |-[T] trésorier @@ -113,6 +112,8 @@ # | | |-[+] new_activity # | | |-[+] new_station # | | +# | |-[+B] mac_prises (spoofing is being watched) +# | | # | |-[*+] Monit (Un truc marche pas/remarche, un disque est plein,…) # | | | # | | |- @@ -123,7 +124,7 @@ # | | # | |-[+] Nagios (Comme Monit, mais en mieux/moins bien/différent) # | | | -# | | |- +# | | |- # | | # | |-[+B] Stats-upload (Qui a uplodé ?) # | @@ -183,8 +184,6 @@ # | # |-[$*+B] Technique (les discussions et les trucs reliés) # | -# |-[$*+] Cablages (Il faut aller brancher un truc) -# | # |-[*+] Freebox (Vous avez un message vocal) # | # |-[*+] Nounou @@ -192,8 +191,6 @@ # |-[+] root # | # |-[*+] roots -# | -# |-[*+B] tracker (Todolist) # # Federez (Les mails concernant l'asso FedeRez sont dans un dossier à part) # | @@ -225,10 +222,9 @@ ################################################################# ## Variables d'environnement ## ################################################################# +### Paths # Path du dossier où sont rangés les mails MAILDIR="${HOME}/Mail" -# Shell à utiliser pour exécuter des commandes -SHELL="/bin/bash" # Dossier contenant tout le garbage procmail-related # (le .procmailrc lui-même est dans le home) PROCMAILDIR="${HOME}/.procmail" @@ -238,6 +234,11 @@ CONFIGDIR="${PROCMAILDIR}/rc" LOGFILE="${PROCMAILDIR}/logs/procmail.log" +### Scripting +# Shell à utiliser pour exécuter des commandes +SHELL="/bin/bash" + + ################################################################# ## Noms de dossiers ## ################################################################# @@ -295,10 +296,12 @@ MONITORINGDIR="${CRANSDIR}.Monitoring" MONITDIR="${MONITORINGDIR}.Monit" NAGIOSDIR="${MONITORINGDIR}.Nagios" NAGIOSSWITCHSDIR="${NAGIOSDIR}.0-switchs" +NAGIOSBORNESDIR="${NAGIOSDIR}.1-bornes" ARPWATCHDIR="${MONITORINGDIR}.Arpwatch" MUNINDIR="${MONITORINGDIR}.Munin" MUNINIMPRESSIONDIR="${MUNINDIR}.Imprimante" STATUPLOADDIR="${MONITORINGDIR}.Stats-upload" +MACPRISESDIR="${MONITORINGDIR}.Mac_prises" ## Dossiers pour le mails concernant des "problèmes" # Racine @@ -321,7 +324,6 @@ GESTCRANSDIR="${WILDDIR}.gest_crans" NOLSDIR="${ARGHDIR}.nols" PULSARDIR="${ARGHDIR}.pulsar" MAILMANDIR="${HUMANPROBLEMSDIR}.Mailman" -PRINTSTATUSDIR="${HUMANPROBLEMSDIR}.print_status" MULTIDECODIR="${HUMANPROBLEMSDIR}.multi-deco" ## Dossier de surveillance (= surveillance d'actions humaines) @@ -353,16 +355,14 @@ DARCSDIR="${INFORMATIONDIR}.darcs" BCFG2DIR="${INFORMATIONDIR}.bcfg2" # Statistiques des serveurs de news INNDIR="${INFORMATIONDIR}.inn" +# Notifications de bridage pour upload +DECODIR="${INFORMATIONDIR}.deconnexion" ## Dossier de discussion techniques # Racine TECHNIQUEDIR="${CRANSDIR}.Technique" # Mails de roots@ non catchées avant ROOTSDIR="${TECHNIQUEDIR}.roots" -# Mails de câblages demandé/effectué -CABLAGEDIR="${TECHNIQUEDIR}.Cablages" -# Mails du tracker -TRACKERDIR="${TECHNIQUEDIR}.Tracker" # Mails de la ML nounou NOUNOUDIR="${TECHNIQUEDIR}.Nounou" # Messages laissés sur la Freebox @@ -382,6 +382,25 @@ FEDEREZOVHDIR="${FEDEREZADMINDIR}.OVH" +################################################################################ +##### Preprocessing ##### +################################################################################ + +# On décode les champs sur lesquels ont pourrait avoir besoin de matcher +# plus tard la version décodée. On stocke les versions décodées +# dans des variables. +# "formail -cXHeader" récupère le champ Header (-X) en enlevant les \n (-c) +# si le champ fait plusieurs lignes +:0 +* ^X-Mailer: +XMAILER=| formail -cXX-Mailer: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))' + +:0 +* ^Subject: +SUBJECT=| formail -cXSubject: | perl -MEncode -pe '$_=encode("utf-8",decode("MIME-Header",$_))' + + + ################################################################################ ##### Règles ##### ################################################################################ @@ -453,14 +472,19 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules" :0 * ^(From: nagios@crans\.org|User-Agent:.*nagios) { - # Tous les switchs vont dans le dossier ${NAGIOSSWITCH} + # Tous les switchs vont dans le dossier ${NAGIOSSWITCHSDIR} :0 - * ^Subject:.*Alert: bat[^/]+- + * ^Subject:.*[A-Z]+ - (bat[a-z]-[0-9]+|backbone|minigiga)\. ${NAGIOSSWITCHSDIR}/ + # Toutes les bornes vont dans le dossier ${NAGIOSBORNESDIR} + :0 + * ^Subject:.* [A-Z]+ - [a-z0-9](-*[a-z0-9]+)*\.wifi\.crans\.org + ${NAGIOSBORNESDIR}/ + # Chaque serveur a son dossier :0 - * ^Subject:.*Alert: \/[^/\.]+ + * ^Subject:.* [A-Z]+ - \/[a-z0-9](-*[a-z0-9]+)* ${NAGIOSDIR}.${MATCH}/ # Si l'envie prenait à Nagios de raconter un peu plus sa vie @@ -511,7 +535,7 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules" # On matche tous les alias de root@crans.org :0 -* ^(To|Cc): .*(root|abuse|amavis|backup|bind|bin|clamav|daemon|ftpadm|ftpmaster|ftp-mirror|ftp|games|gnats|irc|list|logcheck|lp|mail|majordom|man|msql|munin|news|operator|postgres|proxy|sync|sys|usenet|uucp|webmaster|www-clubs|www-data|www-perso|postmaster|mailer-daemon)@(crans\.org|crans\.ens-cachan\.fr) +* ^(To|Cc):.* (root|abuse|amavis|backup|bind|bin|clamav|daemon|ftpadm|ftpmaster|ftp-mirror|ftp|games|gnats|irc|list|logcheck|lp|mail|majordom|man|msql|munin|news|operator|postgres|proxy|sync|sys|usenet|uucp|webmaster|www-clubs|www-data|www-perso|postmaster|mailer-daemon)@(crans\.org|crans\.ens-cachan\.fr) { # Spam de logcheck :0 @@ -631,7 +655,7 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules" * ^X-GitInfo { :0 - * ^X-Mailer: /usr/scripts/utils/git-whatsnew + * XMAILER ?? /usr/scripts/utils/git-whatsnew ${GITDIR}.whatsnew/ :0 @@ -648,14 +672,9 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules" ${DARCSDIR}/ } - # Tracker - :0 - * ^X-Mailer:.*Redmine - ${TRACKERDIR}/ - # Messages sur la Freebox :0 - * ^From: telephonie.freebox@freetelecom.fr + * ^From: telephonie\.freebox@(mevo\.)?freetelecom\.fr ${FREEBOXDIR}/ # Serveurs non synchronisés avec bcfg2 @@ -681,19 +700,28 @@ INCLUDERC="${CONFIGDIR}/custom.high.rules" { # Statistiques d'upload :0 - * ^X-Mailer: /usr/scripts/surveillance/statistiques.py + * XMAILER ?? /usr/scripts/surveillance/statistiques2.py ${STATUPLOADDIR}/ + # Résumé quotidien des correspondances mac_prises :0 - * ^Subject:.*fois.*en un mois - ${MULTIDECODIR}/ + * XMAILER ?? /usr/scripts/surveillance/mac_prises/mac_prise_analyzer.py + ${MACPRISESDIR}/ + + # Notifications de bridage pour upload + :0 + * XMAILER ?? /usr/scripts/surveillance/deconnexion2.py + { + # Récidivistes + :0 + * SUBJECT ?? fois ce mois + ${MULTIDECODIR}/ + + :0 + ${DECODIR}/ + } } -# Câblage demandé/effectué -:0 -* ^X-Crans-Intranet: cablage -${CABLAGEDIR}/ - # Sur la ML impression@ :0 * ^List-Id:.*impression\.lists\.crans\.org @@ -703,24 +731,20 @@ ${CABLAGEDIR}/ * ^X-Mailer: modif_solde ${LDAPSOLDEDIR}/ - # Informations de print_status - :0 - * ^X-Mailer: /usr/scripts/impression/print_status.py - ${PRINTSTATUSDIR}/ - # Munin stock papier et toners :0 * ^From: munin@crans\.org ${MUNINIMPRESSIONDIR}/ } + # Sur la ML respbats@ :0 * ^List-Id:.*respbats\.lists\.crans\.org { # Machines supprimées pour chambre invalide :0 - * ^X-Mailer: /usr/scripts/gestion/chambres_vides.py + * XMAILER ?? /usr/scripts/gestion/menage/chambres_invalides.py ${DELETEDMACHINES}/ } @@ -858,7 +882,7 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules" # MLs Med :0 - * ? echo "${ML}" | grep med + * ? echo "${ML}" | grep -E "^med" ${MLMEDDIR}.${ML_}/ # MLs SDA @@ -953,9 +977,13 @@ INCLUDERC="${CONFIGDIR}/custom.normal.rules" ## Gestion des autres mailing-listes ## ################################################################# # On récupère le nom de domaine et le nom de la ML + # Le nom de domaine, c'est le mot (sans .) qui précède le TLD DOMAIN=`echo "${ML}" | sed 's/.*\.\([^\.]\+\)\.[^\.]\+$/\1/'` # On ne sait jamais ce qu'on peut rencontrer… DOMAIN_=`echo "${DOMAIN}" | sed 's/ /_/g'` + # On vire le domain et le TLD + # On vire .list ou .lists si c'est la composante la plus à droite + # du subdomain # On prend garde à ne pas créer un sous-dossier # si jamais le List-Id contient un . ou un espace ML_=`echo "${ML}" | sed 's/\.[^\.]\+\.[^\.]\+$//;s/\.lists\?$//;s/\(\.\| \)/_/g'`