[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |