Script Perl gestion des dates

Fermé
yop741 - 15 déc. 2008 à 17:13
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 - 16 déc. 2008 à 00:56
Bonjour à tous,

je suis nouveau sur le forum, je vais essayer d'être le plus claire possible en esperant que vous pourrez maider.

sur des systèmes AIX, il ya une sauvegarde systèmes (MKSYSB) que l'on effectue 1 fois/ semaine.

toutes mes machines sont referencés dans un fichier (ListeClientNIM.PROD)
et un script perl (check_mksysb.pl) vient checker ce fichier etc.......

#######
$liste_machine = $ARGV[0];#"/export/nim/scripts/ListeClientNIM";
$now_time = time/(3600*24);
%myarray =(
"jan" => "0",
"fév" => "1",
"mar" => "2",
"avr" => "3",
"mai" => "4",
"jun" => "5",
"jul" => "6",
"aoû" => "7",
"sep" => "8",
"oct" => "9",
"nov" => "10",
"déc" => "11",
);
open(LISTE,$liste_machine);
open(SYSOUT,">/export/nim/scripts/rapport_mksysb.txt");
$i=0;
$j=0;
$cmd="date +%d";
open(DATE,"$cmd |");
$madate = <DATE>;
close(DATE);
while(<LISTE>)
{
$Line = $_;
chomp $Line;
if(($Line !~ /\#/) && ($Line !~ /\//) && (length($Line)>1)){
$Commande = "ls -alrt /export/nimpwc/mksysb/$Line/mksysb.$Line";
open(SHOWMOUNT,"$Commande |");
$retour=<SHOWMOUNT>;
chomp $retour;
if(length($retour) > 1 ){
print "$Line $retour";
print(SYSOUT "$Line $retour");
@Tab = split(/\s+/,$retour);
$fin_time = mktime(0,0,0,$Tab[5],$myarray{$Tab[6]},108)/(3600*24);
if($fin_time < ($now_time-6)){
print " - Date ancienne";
print(SYSOUT " - Date ancienne");
$j++;
}
print "\n";
print(SYSOUT "\n");
}else{
print "$Line = Pas de mksysb\n";
print(SYSOUT "$Line = Pas de mksysb\n");
$i++;
}
close(SHOWMOUNT);

}


}
print (SYSOUT "-----------------------------------------\n");
print (SYSOUT "$i mksysb absent\n");
print (SYSOUT "$j mksysb ancien\n");
close(SYSOUT);
close(LISTE);

#$cmd = "rcp /export/nim/scripts/rapport_mksysb.txt paris:/home/a4iadm/mksysb/\"";
#print $cmd."\n";
#open(EMAIL,"$cmd |");
#close(EMAIL);


cependant lorsque je check (/check_mksysb.pl ListeClientNIM.PROD)
voici le message que jobtiens

SERVEUR1-rw-r--r-- 1 root system 1867264000 Dec 15 11:52 /export/nimpwc/mksysb/SERVEUR1/mksysb.SERVEUR1 - Date ancienne

SERVEUR2 -rw-r--r-- 1 root system 1593241600 Dec 15 11:51 /export/nimpwc/mksysb/SERVEUR2/mksysb.SERVEUR2 - Date ancienne

le script me remonte date ancienne sur toutes les machine.

Pouvez vous m'aider ??

Merci
A voir également:

1 réponse

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
16 déc. 2008 à 00:56
Bonjour,

après la ligne $fin_time = mktime(...
affiche les deux variables $fin_time et $now_time pour voir ce qui cloche...
c'est assez difficile à dire rien qu'en lisant le code...

Je pense que tu n'as pas la même echelle dans les deux...
0