mise à jour de identMM.pl et résolution de bug
This commit is contained in:
parent
733c273a74
commit
f924142127
@ -2,6 +2,7 @@
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Tk;
|
||||
|
||||
#********** INITIALISATION DE LA GENERATION FICHIER CHECKLIST *********
|
||||
#my $CheckFile="/home/lalis/Documents/checklist.txt";
|
||||
@ -100,7 +101,7 @@ my @DescMem=("0", # titre du chapitre general (@SmartTitres)
|
||||
|
||||
#*********** INITIALISATION DES INFORMATIONS DISK (SMARTCTL) **************
|
||||
my @champsdisk=("Family|Model:|Serial|Capacity|Form|SATA");
|
||||
my @ListDisk=`ls -l /dev/sd?`;
|
||||
my @ListDisk=`ls /dev/sd?`;
|
||||
my @DescDisk=("0", # titre du chapitre general (@SmartTitres)
|
||||
"0" # champs (@champsdisk) de donnees à extraire
|
||||
);
|
||||
@ -108,7 +109,10 @@ my @DiskTitres=("\n########## Identification DISK ##########\n");
|
||||
|
||||
my $D;
|
||||
my @tabsmart;
|
||||
|
||||
my @temp2;
|
||||
my $PathD;
|
||||
my $nb=0;
|
||||
|
||||
#********** INITIALISATION DE LA GENERATION FICHIER RESULTAT *********
|
||||
my @RefMachine=("PC", "CM");
|
||||
my @ChampsRef=("numéro", # champs Identification ORDINATEUR
|
||||
@ -134,6 +138,30 @@ my $NomFic=undef;
|
||||
my $A;
|
||||
my $item;
|
||||
|
||||
#********** INITIALISATION TRAITEMENT CODE REOUR RSYNC *********
|
||||
my %CodeRetourRsync = (0 => "Succes",
|
||||
1 => "Erreur de syntaxe ou d'utilisation",
|
||||
2 => "Incompatibilite de protocole",
|
||||
3 => "Erreurs lors de la selection des fichiers et des repertoires d'entree/sortie",
|
||||
4 => "Action non supportee",
|
||||
5 => "Erreur lors du démarrage du protocole client-serveur",
|
||||
6 => "Demon incapable d'ecrire dans le fichier de log",
|
||||
10 => "Erreur dans la socket E/S",
|
||||
11 => "Erreur d'E/S fichier",
|
||||
12 => "Erreur dans le flux de donnée du protocole rsync",
|
||||
13 => "Erreur avec les diagnostics du programme",
|
||||
14 => "Erreur dans le code IPC",
|
||||
20 => "SIGUSR1 ou SIGINT reçu ",
|
||||
21 => "Une erreur retournee par waitpid() ",
|
||||
22 => "Erreur lors de l'allocation des tampons de mémoire principaux",
|
||||
23 => "Transfert partiel dut à une erreur",
|
||||
24 => "Transfert partiel dut à la disparition d'un fichier source",
|
||||
25 => "La limite --max-delete a été atteinte",
|
||||
30 => "Dépassement du temps d'attente maximal lors d'envoi/reception de donnees");
|
||||
|
||||
#********** INITIALISATION DE L'AFFICHAGE POPUP DE FIN DE TRAITEMENT *********
|
||||
my @affich;
|
||||
|
||||
#########################################################################
|
||||
# PROGRAMME RENSEIGNEMENT DU FICHIER CHECKLIST
|
||||
#########################################################################
|
||||
@ -244,11 +272,18 @@ foreach (@tabdmidecode) { # foreach @tabdmidecode
|
||||
#########################################################################
|
||||
# titre Identification DISK
|
||||
push(@ident,$DiskTitres[$DescDisk[0]]);
|
||||
# pour chaque disque
|
||||
# pour chaque disque
|
||||
foreach (@ListDisk) { # foreach disk
|
||||
# commande infos des disques
|
||||
@tabsmart=`smartctl -i $_`;
|
||||
# separation du chemin et nom du disque
|
||||
(my $A, my $B, $D)=split /\//;
|
||||
chop($D);
|
||||
@tabsmart=`smartctl -i /dev/$D`;
|
||||
# memorisation chemin + nom du disque
|
||||
$PathD =$_;
|
||||
chop($PathD);
|
||||
|
||||
#@tabsmart=`smartctl -i /dev/$D`;
|
||||
push(@ident,"\n*************** disk ".$D." *************\n");
|
||||
|
||||
# pour chaque disque extraction des champs description
|
||||
@ -259,7 +294,35 @@ push(@ident,"\n*************** disk ".$D." *************\n");
|
||||
push(@ident,$_);
|
||||
}
|
||||
} # fin boucle foreach tabsmart
|
||||
|
||||
# Sante du disque
|
||||
push(@ident,"\n--------------- Etat Disk ".$D." --------------\n");
|
||||
@temp=();
|
||||
@temp=`smartctl -H $PathD`;
|
||||
# pour chaque ligne de la commande smartctl
|
||||
foreach (@temp) {
|
||||
# recherche du resultat sante disk
|
||||
#$nb++;
|
||||
if ( m/result:/ ){
|
||||
#$nb++;
|
||||
#print "$nb\n";
|
||||
# Affichage de la ligne pour POPUP
|
||||
#push(@affich,"Partition"."sdisk".":"$_);
|
||||
push(@affich,"Partition ".$D.": ".$_);
|
||||
# si le resultat est OK alors enregistrement
|
||||
if ( m/PASSED/ ){
|
||||
#$nb++;
|
||||
#print "$nb\n";
|
||||
push(@ident,$_);
|
||||
}
|
||||
else{
|
||||
# si le resultat est NOK alors enregistrement de la commande
|
||||
@temp2=`smartctl -a $PathD`;
|
||||
foreach (@temp2) {
|
||||
push(@ident,$_);
|
||||
} # fin foreach (@temp2)
|
||||
}
|
||||
}
|
||||
} # fin foreach (@temp)
|
||||
} # fin foreach disk
|
||||
|
||||
#########################################################################
|
||||
@ -356,24 +419,40 @@ print ($FOUT $_);
|
||||
close ($FIN);
|
||||
close ($FOUT);
|
||||
|
||||
|
||||
# Concaténation des fichiers checklist et caracteristique (identPC)
|
||||
#open(my $FIN, "<",$NomFic) or die "Ouverture du fichier $NomFic impossible\n";
|
||||
#open(my $FOUT, ">>",$CheckFile) or die "Ouverture du fichier $CheckFile impossible\n";
|
||||
#print ($Fout "TOTO\n");
|
||||
#print "\n";
|
||||
#while(<$FIN>){
|
||||
#print ($FOUT $_); # ecrit la ligne dans le fichier $CheckFile
|
||||
#print("$_");
|
||||
#}
|
||||
#close ($FIN);
|
||||
#close ($FOUT);
|
||||
|
||||
#########################################################################
|
||||
# PROGRAMME D'ENVOI DU FICHIER RESULTAT VERS LE SERVEUR
|
||||
#########################################################################
|
||||
# Envoi du fichier concatené checklist plus caracteristiques PC sur le serveur
|
||||
system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis69.ddns.net::lalis-ordis/'");
|
||||
my $ret=system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis69.ddns.net::lalis-ordis/'");
|
||||
#my $ret=system("rsync --port 10073 -aP " . $PathFicout.$NomFic . " 'lalis68.ddns.net::lalis-ordis/'");
|
||||
# sauvegarde du code retour
|
||||
#my $ret=$?;
|
||||
#print "******* $? ******\n";
|
||||
#$ret=10;
|
||||
#print "******* $ret ******\n";
|
||||
|
||||
# Libele et affichage du code retour de rsync
|
||||
if (exists ($CodeRetourRsync{$ret})){
|
||||
$_ = "Code retour rsync: ".$ret;
|
||||
push(@affich,$_);
|
||||
$_ = "Libele code retour rsync: ".$CodeRetourRsync{$ret};
|
||||
push(@affich,$_);
|
||||
}
|
||||
else{
|
||||
push(@affich,"Code retour rsync Inconnu!!! ".$ret);
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
# PROGRAMME DE L'AFFICHAGE POPUP DE FIN DE TRAITEMENT
|
||||
#########################################################################
|
||||
my $mw = MainWindow->new();
|
||||
$mw->title("Resultat test HDD");
|
||||
$mw->geometry("700x100");
|
||||
foreach (@affich) {
|
||||
# affichage dans la fenetre
|
||||
$mw->Label(-text => $_)->pack;
|
||||
}
|
||||
MainLoop;
|
||||
|
||||
print "\n########## Nom fichier resultat: $NomFic ##########\n";
|
||||
print "\n################ Traitement terminé ################\n";
|
||||
|
@ -1,6 +1,6 @@
|
||||
Summary: Install LALIS packages and configuration
|
||||
Name: task-lalis
|
||||
Version: 3.0
|
||||
Version: 3.2
|
||||
Release: %mkrel 1
|
||||
License: GPLv3
|
||||
Group: Tools
|
||||
@ -197,8 +197,8 @@ do
|
||||
desktop "/$i"
|
||||
echo $DESKTOP
|
||||
if ! [ -d "$i/$DESKTOP" ]; then
|
||||
su -c "mkdir $i/Bureau" - "$USER"
|
||||
echo "su -c mkdir $i/Bureau - $USER"
|
||||
su -c "mkdir $i/$DESKTOP" - "$USER"
|
||||
echo "su -c mkdir $i/$DESKTOP - $USER"
|
||||
fi
|
||||
cp -fa /usr/share/kio_desktop/Lalis.desktop "$i/$DESKTOP/"
|
||||
chown $USER:$USER "$i/$DESKTOP"
|
||||
|
Reference in New Issue
Block a user