Title: probleme avec cron

        Bonjour,
j'essaye depuis quelques temps de lancer un script via cron sur mandrake 7.2.
j'ai mis mon script perl dans /etc/cron.daily et la commande se lance tous
les jours mais alors que le script fonctionne correctement lorsqu'il est lance
en shell : . backuplog.pl, le cron me renvoie un message d'erreur :
variable date non initialisee.
apparemment le cron ne sait pas lancer la commande 'date' ?
qqun pourrait peut etre m'aider ?

christophe bruyere

voici mon script :

#!/usr/bin/perl -w
use strict;
use diagnostics;

# Mise en forme de la date
my $Date;
my @Date = split(/\./,`/bin/date --date '1 days ago' +%x.%a`); <= LIGNE QUI POSE PROBLEME
if ($Date[3] =~ /dim/)
        {
        @Date = split(/\./,`/bin/date --date '3 days ago' +%x.%a`);
        }
if ($Date[0] =~ /^0/)
        {
        $Date[0] =~ tr /0//d;
        }
if ($Date[1] =~ /^0/)
        {
        $Date[1] =~ tr /0//d;
        }
chomp(@Date);
my $FullDate = "$Date[0]_$Date[1]_$Date[2]";

# Initialisation et declaration des variables

my $RepLog = "/studiel/backuplog";          # Repertoire des fichiers LOG
my $RepResult = "/mnt/public/informatique/rapports_sauvegarde";# Repertoire des fichiers rapport
my $DatName = "006";                    # Nom du DAT

my $LogFile = "${DatName}Q$Date[2]_$Date[1]_$Date[0].log\n\n"; # Nom du fichier LOG
my $RepTmp = "/tmp";                    # Repertoire temporaire

my $Compteur = 0;                       # Compteur de boucle

my @Extension = ("dra",
              "psm",
              "osm",
              "bsm",
              "ssm",
              "pad",
              "brd",
              "csa",
              "prt",
              "css",
              "ptf");                   # Extensions des fichiers a compter

my %Nbre = ();                      # Tableau des compteurs de fichiers

my $Ext;                            # Nom de l'extension en cours

my $NombreEmpPhys;                    # Nombre d'empreintes physiques

# Boucle de calcul du nombre de fichiers extension par extension

print "Utilisation de $RepLog/$LogFile";
foreach $Ext (<@Extension>)
        {    
        open (LOG, "$RepLog/$LogFile") || die "Impossible d ouvrir $RepLog/$LogFile";

        print "Recherche de $Ext\n";
        while (<LOG>)
              {
              tr / //s;
              if (/\.$Ext /)
                  {
                  $Compteur = $Compteur + 1;
                  $Nbre{$Ext} = $Compteur;
                  } # fin if
              } # fin while
        close(LOG);
        $Compteur = 0;
        }

# Creation d'un fichier de rapport
open (RAPPORT, ">$RepResult/rapport_${FullDate}_dat${DatName}.txt") || die "Impossible d'ecrire $RepResult/rapport_$FullDate.txt : $!";

print RAPPORT "\t----------------------------------------------------------------\n";
print RAPPORT "\t-          RAPPORT DE SAUVEGARDE DU $FullDate DAT $DatName           -\n";
print RAPPORT "\t----------------------------------------------------------------\n\n";

foreach $Ext (<@Extension>)
        {
        printf RAPPORT "\tIl y a eu %8s fichiers .$Ext sauvegardes\n",$Nbre{$Ext};
        }

$NombreEmpPhys = $Nbre{osm} + $Nbre{psm} + $Nbre{bsm} + $Nbre{ssm};

print RAPPORT "\n"; # separateur

print RAPPORT "\tNombre d'empreintes physiques sources (.dra)       : $Nbre{dra}\n";
print RAPPORT "\tNombre d'empreintes physiques crees (.psm .osm...) : $NombreEmpPhys\n";

close(RAPPORT);

================================================================================================







Répondre à