1
0

mise à jour de identMM.pl et résolution de bug

This commit is contained in:
Daniel Tartavel 2019-07-17 06:19:36 +02:00
parent 733c273a74
commit f924142127
2 changed files with 101 additions and 22 deletions

View File

@ -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,6 +109,9 @@ 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");
@ -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
#########################################################################
@ -246,9 +274,16 @@ foreach (@tabdmidecode) { # foreach @tabdmidecode
push(@ident,$DiskTitres[$DescDisk[0]]);
# 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";

View File

@ -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"