====== alias_verification.pl ====== #!/usr/bin/perl -w # # alias_verification.pl # # Catherine.Balleydier@grenoble-inp.fr # # maj : 07/03/12 # ######################################################################## # # vérifier les alias par rapport aux listes # # ######################################################################## # use strict; use warnings; use File::Copy; # # données à paramétrer # # repertoire ou sont les listes my $REP="/home/sympa/list_data/xxxxxxxxxxxxxxxxx/" ; # # variables # my $entree ; my @ligne ; my $ind1 ; my $ind2 ; # # ouvrir le fichier /etc/mail/sympa_aliases # my $fichier_alias = "/etc/mail/sympa_aliases" ; open (FICH, $fichier_alias) || die "probleme fichier"; my @ALIAS = ; close (FICH); chomp (@ALIAS); # # # lister le contenu du repertoire contenant les listes # opendir(DIR, $REP) || die "Impossible de lire $REP : $!\n"; my @liste = grep { /^[^\.]/ && -r "$REP/$_" } readdir(DIR); close (FICH) ; # # pour chaque liste vérifier le fichier sympa_aliases # ETIQ1 : foreach $entree (@liste) { $ligne[0] = "#------------------------------ "."$entree".":" ; $ligne[1] = "listes.grenoble-inp.fr-"."$entree".": \"\| /home/sympa/bin/queue "."$entree"."\@listes.grenoble-inp.fr\"" ; $ligne[2] = "listes.grenoble-inp.fr-"."$entree"."-request: \"\| /home/sympa/bin/queue "."$entree"."-request\@listes.grenoble-inp.fr\"" ; $ligne[3] = "listes.grenoble-inp.fr-"."$entree"."-editor: \"\| /home/sympa/bin/queue "."$entree"."-editor\@listes.grenoble-inp.fr\"" ; $ligne[4] = "#listes.grenoble-inp.fr-"."$entree"."-subscribe: \"\| /home/sympa/bin/queue "."$entree"."-subscribe\@listes.grenoble-inp.fr\"" ; $ligne[5] = "listes.grenoble-inp.fr-"."$entree"."-unsubscribe: \"\| /home/sympa/bin/queue "."$entree"."-unsubscribe\@listes.grenoble-inp.fr\"" ; $ligne[6] = "listes.grenoble-inp.fr-"."$entree"."-owner: \"\| /home/sympa/bin/bouncequeue "."$entree"."\@listes.grenoble-inp.fr\"" ; $ligne[7] = "$entree"."-owner: \"\| /home/sympa/bin/bouncequeue "."$entree"."\@listes.grenoble-inp.fr\"" ; for $ind1 (0..$#ALIAS) { if ( $ALIAS[$ind1] =~ /$ligne[0]/ ) { for $ind2 (1..5) { $ind1++ ; if ( $ALIAS[$ind1] ne "$ligne[$ind2]" ) { print "1 : problème sur $ligne[$ind2] \n" ;:wq print "2 : problème sur $ALIAS[$ind1] \n\n" ; next ETIQ1 ; } } $ind1++ ; if ( ( $ALIAS[$ind1] ne "$ligne[6]" ) && ( $ALIAS[$ind1] ne "$ligne[7]" ) ) { print "3 : problème sur $ligne[6] \n" ; print "4 : problème sur $ligne[7] \n" ; print "5 : problème sur $ALIAS[$ind1] \n\n" ; next ETIQ1 ; } next ETIQ1 ; } } print "problème $entree n'existe pas \n" ; }