Script Perl gestion des dates
yop741
-
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Script Perl gestion des dates
- Script vidéo youtube - Guide
- Nombre de jours entre deux dates excel - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
- Gestion des fichiers - Télécharger - Gestion de fichiers