Documentation sur le logiciel SYMPA

Ceci est une ancienne révision du document !


alias_verification.pl

<code> #!/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" ;

} <code>