mysql_liste-abonne.pl
si robot est listes.grenoble-inp.fr :
# ./mysql_liste-abonne.pl listes
#!/usr/bin/perl -w # # mysql_liste-sans-abonne.pl # # Catherine.Balleydier@inpg.fr # # maj : 01/12/05 # ######################################################################## # # recherche des abonnes d'une liste pour toutes les listes d'un robot # ######################################################################## # use DBI; use DBD::mysql ; use strict; use warnings; use Term::ReadKey; my $compte = "sympa" ; my $BASE = "sympa" ; my $host = "localhost" ; my $robot = "$ARGV[0]".".grenoble-inp.fr" ; my $RESUL= "/usr/local/SCRIPTS/sympa/RESUL/liste-abonnes" ; my $REPLIST="/home/sympa/list_data/$robot" ; # # lister le contenu du repertoire /home/sympa/list_data/$robot # opendir(DIR, $REPLIST) || die "Impossible de lire $REPLIST : $!\n"; my @liste = grep { /^[^\.]/ && -r "$REPLIST/$_" } readdir(DIR); closedir(DIR); open (FICH, ">$RESUL") ; # # demande du password de la base sympa # my $passe; print "Password: "; ReadMode 2; $passe = <STDIN>; ReadMode 0; print "\n"; chomp($passe); # # Connexion a la base sympa # my $data_source = "DBI:mysql:database=$BASE;host=$host"; my $db; $db = DBI->connect( $data_source , $compte, $passe); #$db->selectdb($BASE); my $table = "subscriber_table" ; my $entree ; my $execution ; # # traiter pour chaque liste le fichier config # foreach $entree (@liste) { # # Requete sql : recherche des abonnes pour chaque liste # chomp $entree; my $query1 = "SELECT list_subscriber,user_subscriber FROM $table where list_subscriber='"."$entree"."'" ; $execution = $db->prepare($query1) ; $execution ->execute(); # # Recuperation dans un tableau ses abonnes avec la liste # while ( my @result = $execution->fetchrow() ) { print FICH "| ".$result[0]." | ".$result[1]." |\n"; } $execution->finish(); } close (FICH) ; $db->disconnect() or warn "Error disconnecting: $DBI::errstr\n";
