Ceci est une ancienne révision du document !
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 = <FICH> ;
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" ;
}
