Voici le contenu du script blanc_rouge.pl.
#!/usr/bin/perl -w
# mise en fichier des jours blancs et rouges
# avec comptage!
# R. Suinot, octobre 2003
# 43 jours blanc
# 22 jours rouge
# ----------------------------------------------------

# recuperation de la couleur du jour dans les parametres du script
$couleur=$ARGV[0];

# preparation des noms français pour la date:
%Jour=(
"Mon" => "Lundi",
"Tue" => "Mardi",
"Wed" => "Mercredi",
"Thu" => "Jeudi",
"Fri" => "Vendredi",
"Sat" => "Samedi",
"Sun" => "Dimanche",
);

%Mois=(
"Jan" => "Janvier",
"Feb" => "Fevrier",
"Mar" => "Mars",
"Apr" => "Avril",
"May" => "Mai",
"Jun" => "Juin",
"Jul" => "Juillet",
"Aug" => "Aout",
"Sep" => "Septembre",
"Oct" => "Octobre",
"Nov" => "Novembre",
"Dec" => "Decembre",
);

if ( $couleur eq "rouge" ){
    $fichier="/var/tmp/Rouges.nbr";
    $MAX_JOURS=22;
} else {
    $fichier="/var/tmp/Blancs.nbr";
    $MAX_JOURS=43;
}

open H_FICHIER, "$fichier" or die "erreur d'ouverture: $!";
my(@liste) = <H_FICHIER>;         # on lis d'un coup le fichier, en le placant dans un tableau
close H_FICHIER;

# le nombre de ligne dans le fichier indique le nombre de jours
# ayant été blanc ou rouge
$nbr=@liste;

# on cherche le nombre de lignes, puis on fait une copie du fichier
# avec ce nombre de lignes dans le nom:
$nom="$fichier.$nbr";
rename $fichier, $nom;

# recherche de la date actuelle:
@date=split ' ', scalar localtime;

# on ecrit la date en fin de fichier:
open H_FICHIER, ">$fichier" or die "erreur d'ouverture: $!";
foreach (@liste)         # on affiche la liste des dates
{
    print H_FICHIER $_;
}
print H_FICHIER "$Jour{ $date[0]} $date[2] $Mois{$date[1]} $date[4]\n";
close H_FICHIER;

# on teste le nombre de jour, puis on fait un mail si la limite est arrivée:
$nbr += 1;

if ($nbr >= $MAX_JOURS) {

    # qui suis-je?
    open H_NOM, "whoami|" or die "impossible de savoir qui je suis: $!";
    $uid=<H_NOM>;
    close H_NOM;

    # ouverture du logiciel de mail (/usr/bin/mail) en écriture, via un pipe
    # pour écrire au propriétaire du script
    open H_MAIL, "|mail -s 'Fin des jours $couleur' $uid" or die "erreur de script? -> $!";
    print H_MAIL "le nombre de jours $couleur est arrive a son maximum ($nbr).\n";
    print H_MAIL "voici la liste des jours:\n\n";
    
    foreach (@liste)         # on affiche la liste des dates
    {
        print H_MAIL $_;
    }

    print H_MAIL "$Jour{ $date[0]} $date[2] $Mois{$date[1]} $date[4]\n";

    close H_MAIL;
}

Ce site est continuellement en chantier, surtout la partie 'Journal de bord' (cf 'Documentations').
Cependant, vous pouvez quand même me contacter et me donner vos avis/idées/corrections à rsuinux <at> gmx.fr

Mise en place du site:   11 Juillet 2001     Dernière mise à jour: 22/11/04

Vous êtes     à être passé me voir!

Valid HTML 4.01! Valid CSS!