#!/usr/bin/perl -w # # mysql_liste-sans-abonne.pl # # Catherine.Balleydier@inpg.fr # # maj : 03/10/16 # ######################################################################## # # recherche des derniers messages pour toutes les listes sur tous les robots # ######################################################################## # use strict; use warnings; use Term::ReadKey; use Time::Local; use Term::ReadKey; use lib '/home/sympa/bin'; use Language; use File::Copy; my $REProbot = "/home/sympa/list_data/" ; my $REP ; my $robot ; my $fichier ; my @CONFIG ; my @liste ; my $entree ; my $last_message; my $fich_count ; my $date_last ; # # fichier resultat # my $RESUL = "/usr/local/SCRIPTS/sympa/RESUL/dernier-message\.csv" ; open (FICH, ">$RESUL") ||die "probleme fichier"; # # lister les robots du repertoire /home/sympa/list_data # opendir(DIR, $REProbot) || die "Impossible de lire $REProbot : $!\n"; my @robots = grep { /^[^\.]/ && -r "$REProbot/$_" } readdir(DIR); closedir(DIR); # # traiter pour chaque robot # ETIQ : foreach $robot (@robots) { if ( $robot =~ /blacklist/ ) { next ETIQ ;} $REP = "$REProbot"."$robot"."/"; # # lister le contenu du repertoire /home/sympa/list_data/robot # opendir(DIR, $REP) || die "Impossible de lire $REP : $!\n"; @liste = grep { /^[^\.]/ && -r "$REP/$_" } readdir(DIR); closedir(DIR); # # traiter pour chaque liste le fichier msg_count # foreach $entree (@liste) { # ----------------------------------------- # date du dernier message # print FICH "$robot".";"."$entree".";"; $last_message = 0; $fich_count = "$REP"."$entree"."/msg_count" ; if (open COUNT, $fich_count) { while (<COUNT>) { $last_message = $1 if (/^(\d+)\s/ && ($1 > $last_message)); } close COUNT; $date_last = gettext_strftime "%Y %m %d", localtime($last_message*86400) ; print FICH "$date_last\n"; } else { print FICH " AUCUN MESSAGE \n" ; } } } close (FICH) ;