Ceci est une ancienne révision du document !
list-config_modif_serveur-ldap.pl
#!/usr/bin/perl -w
#
# list-config_modif_serveur-ldap.pl
#
# Catherine.Balleydier@inpg.fr
#
# maj : 13/03/12
#
########################################################################
#
# modifier le serveur ldap pour les listes s'appuyant sur
# les groupes annuaires
#
########################################################################
#
use strict;
use warnings;
use File::Copy;
## variable à paramétrer
my $REP="/home/sympa/list_data/xxxxxxx/" ;
my $nvannuaire="xxxxx:389" ;
my $ancannuaire="xxxxx:389" ;
##
my $fichier ;
my $nvfichier ;
my @CONFIG ;
my $entree ;
my $LIGNE;
my $ligneannuaire = "host "."$ancannuaire".":";
#
# date
#
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
my $marque = (1900+$year)."_".($mon+1)."_"."$mday"."_"."$hour"."_"."$min" ;
#
# lister le contenu du repertoire /home/sympa/list_data/listes.grenoble-inp.fr
#
opendir(DIR, $REP) || die "Impossible de lire $REP : $!\n";
my @liste = grep { /^[^\.]/ && -r "$REP/$_" } readdir(DIR);
closedir(DIR);
#
# traiter pour chaque liste le fichier config
#
foreach $entree (@liste)
{
$fichier = "$REP"."$entree"."/config" ;
print "liste : $fichier\n";
copy ("$fichier", "$fichier"."."."$marque") ;
open (FICH,"$fichier") ||die "probleme fichier";
@CONFIG = <FICH> ;
close (FICH) ;
#
# recherche si la liste s'appuie sur les groupes annuaires
#
if (grep(/include_ldap_2level_query/i, @CONFIG))
{
copy ("$fichier", "$fichier"."."."$marque") ;
$nvfichier = "$REP"."$entree"."/nvconfig" ;
open (NVFICH,">$nvfichier") ||die "probleme nvfichier";
foreach $LIGNE (@CONFIG)
{
if ( ( $LIGNE =~ /"$ligneannuaire"/i) )
{
print "$entree\n";
$LIGNE = "host "."$nvannuaire" ;
}
chomp $LIGNE ;
print NVFICH "$LIGNE\n" ;
}
close (NVFICH) ;
rename ("$nvfichier","$fichier") ;
chown "503" , "503", "$fichier" ;
}
}
