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" ; } }
