Ceci est une ancienne révision du document !
list_dernier_message.pl
#!/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) ;
