[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> smart.sh (source)

   1  #!/bin/bash
   2  # Version 0.20
   3  # program smartctl is using a deprecated SCSI ioctl, please convert it to SG_IO
   4  
   5  ##### Test l'état des disques #####
   6  ## $Id: smart.sh 7061 2012-04-02 09:22:45Z dbo $ ##
   7  
   8  
   9  if [ ! -z "$1" ]
  10  then
  11      echo "Script permettant tester l'état des disques de la machine"
  12      echo "Usage : Aucune option"
  13      exit
  14  fi    
  15  
  16  
  17  #test smart existe
  18  dpkg -l smartmontools > /dev/null
  19  if [ $? == 1  ] 
  20      then
  21      apt-get install smartmontools
  22  fi
  23  
  24  # Nombre et type de disque
  25  # Commande à modifier
  26  #NBD=`dmesg |grep  Attached |wc |cut -d" " -f3-7`
  27  NBD=`sfdisk -g | wc -l`
  28  
  29  TYPED=`dmesg |grep -m 1 Attached |cut -d" " -f2`
  30  
  31  
  32  # Controlleur disque
  33  # 0=IDE   1=SCSI  2=RAID  3=Raid 3Ware
  34  CTRL=1  #SCSI Par défaut
  35  SCSI=` grep -B 2 Direct-Access /proc/scsi/scsi|grep Vendor |cut -d" " -f4`
  36  #Test 3ware
  37  if [ "$SCSI" == "3ware" ] # Controlleur Raid 3Ware
  38      then CTRL=3
  39      echo "Controlleur Raid Ide $SCSI"
  40  elif [ "$SCSI" == "MegaRAID" ] # Controlleur Raid : Dans l'os, c'est mort pour smart
  41      then CTRL=2
  42      echo "Controlleur Raid SCSI $SCSI"
  43  fi
  44  #Test IDE
  45  for I in a b c d e f g h i j k l m n 
  46      do
  47      EXIST=`ls /proc/ide/* |grep hd`
  48          if [ "$EXIST" != "" ]
  49          then
  50          DISK=`cat /proc/ide/hd$I/media 2>&1`
  51              if [ "$DISK" == "disk" ]
  52              then
  53              CTRL=0
  54              echo  "Controlleur IDE"
  55              RES=`smartctl -H  /dev/hd$I | grep "SMART overall-health"`
  56              PASS=`smartctl -H  /dev/hd$I |grep "SMART overall-health"|cut -d" " -f6-8`
  57                  if [ "$PASS" == "PASSED"  ]
  58                  then 
  59                  echo "Disque N° $I (/dev/hd$I) sur controlleur IDE : OK"
  60                  else
  61                  echo "Disque N° $I (/dev/hd$I) sur controlleur IDE : Probleme"
  62                  fi                                                
  63              fi
  64          fi
  65      done
  66  
  67  
  68  
  69  if [ $NBD != 0 ]
  70      then
  71      echo "Vous avez $NBD disque(s) $TYPED dans cette machine"
  72      else
  73      echo "Problème lors de la détection des disques"
  74  fi
  75  
  76  
  77  if [ $CTRL == 3 ]
  78  then
  79      for (( I=0 ; I<=12 ; I++ ))
  80      do
  81      RES=`smartctl -H -d 3ware,$I /dev/sda`
  82      EXIST=`smartctl -H -d 3ware,$I /dev/sda | grep overall-health`
  83      PASS=`smartctl -H -d 3ware,0 /dev/sda |grep overall-health|cut -d" " -f6`
  84          if [ "$EXIST" != "" ]
  85          then
  86              if [ "$PASS" == "PASSED"  ]
  87              then
  88              echo "Disque N° $I sur controlleur Raid 3ware : OK"
  89              else
  90              echo "Disque N° $I sur controlleur Raid 3ware : Probleme"
  91              fi
  92          fi
  93      done
  94  fi
  95  
  96  
  97  if [ $CTRL == 1 ]
  98  then
  99      for I in a b c d e f g h i j k l m n 
 100      do
 101      RES=`smartctl -H  /dev/sd$I | grep "SMART Health Status"`
 102      PASS=`smartctl -H  /dev/sd$I |grep "SMART Health Status"|cut -d" " -f4`
 103          if [ "$RES" != "" ]
 104          then
 105              if [ "$PASS" == "OK"  ]
 106              then
 107              echo "Disque N° $I (/dev/sd$I) sur controlleur SCSI : OK"
 108              else
 109              echo "Disque N° $I (/dev/sd$I) sur controlleur SCSI : Probleme"
 110              fi
 111          fi
 112      done
 113  fi
 114  
 115  if [ $CTRL == 110 ]
 116  then
 117      for I in a b c d e f g h i j k l m n 
 118          do
 119          DISK=`cat /proc/ide/hd$I/media|grep disk >/dev/null`
 120              if [ "$DISK" == "disk" ]
 121              then
 122              RES=`smartctl -H  /dev/hd$I | grep "SMART overall-health"`
 123              PASS=`smartctl -H  /dev/hd$I |grep "SMART overall-health"|cut -d" " -f6-8`
 124              echo "Disque N° $I (/dev/hd$I) sur controlleur IDE : OK"
 125              else
 126              echo "Disque N° $I (/dev/hd$I) sur controlleur IDE : Probleme"
 127          fi
 128      done
 129  fi
 130  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1