« LINUX:SmartMonTools » : différence entre les versions
 Page créée avec « __FORCETOC__ ---- ''→ retour à la Surveillance'' ---- =But= Ce logiciel sert à surveiller l'état des disques durs qui supportent la technologie Smart. En cas de défaillance, son service vous avertit par mail.   =Installation= Par défaut, il est installé.  Sinon exécutez la commande suivante:  dnf install smartmontools   =Service= Si vous voulez être avertis, il faut lancer le service Smartd:  systemctl enable smartd  systemctl... »  | 
				Aucun résumé des modifications  | 
				||
| Ligne 125 : | Ligne 125 : | ||
=Scripts=  | |||
On peut créer des scripts pour en extraire les information désirées.  | |||
Le premier permet d'extraire les informations générales:  | |||
----  | |||
 #!/bin/bash  | |||
    | |||
 liste=`ls /dev/sd?`  | |||
 echo -e "Disque  \tTaille\tFirme-Modèle"  | |||
 echo "============================================================================="  | |||
 for disque in $liste  | |||
 do  | |||
  FIRME=`/usr/sbin/smartctl -a  $disque | /usr/bin/grep "Model Family" | /usr/bin/awk -F':' '{printf("\t%s\n",$2)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  MODEL=`/usr/sbin/smartctl -a  $disque  | /usr/bin/grep "Device Model" | /usr/bin/awk -F':' '{printf("\t%s\n",$2)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  TAILLE=`/usr/sbin/smartctl -a  $disque | /usr/bin/grep "User Capacity" | /usr/bin/awk -F'[' '{printf("\t%s\t",$2)}' | /usr/bin/awk -F']' '{printf("\t%s\t",$1)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  echo -n $disque  | |||
  echo -n -e "\t"  | |||
  echo -n $TAILLE  | |||
  echo -n -e "\t"  | |||
  echo -n $FIRME  | |||
  echo -n -e "\t"  | |||
  echo $MODEL  | |||
 done  | |||
----  | |||
Si nous l'exécutons, nous obtenons ce style de sortie:  | |||
----  | |||
 Disque          Taille  Firme-Modèle  | |||
 =============================================================================  | |||
 /dev/sda        500 GB  Western Digital Blue    WDC WD5000AAKX-001CA0  | |||
 /dev/sdb        500 GB  Western Digital Blue    WDC WD5000AAKX-603CA0  | |||
 /dev/sdc        500 GB  Seagate Barracuda ES.2  ST3500320NS  | |||
 /dev/sdd        1,00 TB Western Digital Blue    WDC WD10EALX-009BA0  | |||
----  | |||
Le second permet d'extraire la température des disques:  | |||
----  | |||
 #!/bin/bash  | |||
    | |||
 echo " "  | |||
 echo "Désignation des colonnes:"  | |||
 echo A. Température actuelle  | |||
 echo B. Power Cycle Min/Max Temperature  | |||
 echo C. Lifetime    Min/Max Temperature  | |||
 echo D. Température recommandée Min/Max  | |||
 echo E. Température limite Min/Max  | |||
 echo " "  | |||
 echo -e "Disque  \tTempératures"  | |||
 echo    "                A       B       C       D       E"  | |||
 echo    "================================================================"  | |||
 liste=`ls /dev/sd?`  | |||
 for disque in $liste  | |||
 do  | |||
  TEMP1=`/usr/sbin/smartctl -x  $disque | /usr/bin/grep "Power Cycle Min/Max Temperature" | /usr/bin/awk -F' ' '{printf("\t%s\n",$5)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  TEMP2=`/usr/sbin/smartctl -x  $disque | /usr/bin/grep "Lifetime    Min/Max Temperature" | /usr/bin/awk -F' ' '{printf("\t%s\n",$4)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  TEMP3=`/usr/sbin/smartctl -x  $disque | /usr/bin/grep "Min/Max recommended Temperature" | /usr/bin/awk -F' ' '{printf("\t%s\n",$4)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  TEMP4=`/usr/sbin/smartctl -x  $disque | /usr/bin/grep "Min/Max Temperature Limit"       | /usr/bin/awk -F' ' '{printf("\t%s\n",$4)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  TEMP=`/usr/sbin/smartctl -x  $disque  | /usr/bin/grep "Temperature_Celsius"             | /usr/bin/awk -F' ' '{printf("\t%s\n",$8)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  if [ "$TEMP" == "" ]  | |||
  then  | |||
   TEMP=`/usr/sbin/smartctl -x  $disque | /usr/bin/grep "Current Temperature:"            | /usr/bin/awk -F' ' '{printf("\t%s\t",$3)}' | /usr/bin/sed -r "s/(  )+//g" `  | |||
  fi  | |||
  echo -n $disque  | |||
  echo -n -e "\t"  | |||
  echo -n $TEMP  | |||
  echo -n -e "\t"  | |||
  echo -n $TEMP1  | |||
  echo -n -e "\t"  | |||
  echo -n $TEMP2  | |||
  echo -n -e "\t"  | |||
  echo -n $TEMP3  | |||
  echo -n -e "\t"  | |||
  echo -n $TEMP4  | |||
  echo -n -e "\t"  | |||
  echo " Celcius"  | |||
 done  | |||
----  | |||
Si nous l'exécutons, nous obtenons ce style de sortie:  | |||
----  | |||
 Désignation des colonnes:  | |||
 A. Température actuelle  | |||
 B. Power Cycle Min/Max Temperature  | |||
 C. Lifetime Min/Max Temperature  | |||
 D. Température recommandée Min/Max  | |||
 E. Température limite Min/Max  | |||
    | |||
 Disque          Températures  | |||
                 A       B       C       D       E  | |||
 ================================================================  | |||
 /dev/sda        48      24/51   0/53    0/60    -41/85   Celcius  | |||
 /dev/sdb        49      24/52   0/55    0/60    -41/85   Celcius  | |||
 /dev/sdc        41      22/42   18/50   0/      0/       Celcius  | |||
 /dev/sdd        48      24/52   47/55   0/60    -41/85   Celcius  | |||
----  | |||
On peut remarquer que certaines valeurs ne sont pas disponibles selon les disques selon les fonctions supportées de Smart.  | |||
Note: Nous verrons dans d'autres articles diverses commandes de lignes fournissant aussi la température des disques.  | |||
On peut adapter facilement ces scripts afin d'extraire d'autres informations.  | |||