diff --git a/SOURCES/identMM.pl b/SOURCES/identMM.pl index 35a9035..8d5add1 100755 --- a/SOURCES/identMM.pl +++ b/SOURCES/identMM.pl @@ -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"; diff --git a/SPECS/task-lalis.spec b/SPECS/task-lalis.spec index 44fcb05..032a712 100755 --- a/SPECS/task-lalis.spec +++ b/SPECS/task-lalis.spec @@ -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"