« 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.