#!/bin/bash ###################################### Program for check SSD life .## if life < 80% print Warning## if life < 60% print Critical ## else Print OK#### Created @ 2011-07-01 by Author .## Modified @ 2011-07-0X by Author , Why ?######################################3MEGACLI=/sbin/megacliSMARTCTL=/usr/local/sbin/smartctlDeviceidlist=”"get_deviceid(){TMPFILE=tmp_ssdstat.$$$MEGACLI -PDList -aALL > $TMPFILElineinfo=($(grep -n “Device Id” $TMPFILE | awk -F ‘:’ ‘{print $3″:”$1}’))linecnt=$[ ${#lineinfo[*]} -1 ]Deviceidlist=”"if [ ${linecnt} -ge 1 ] ; thenfor id in $(seq 0 ${linecnt} )o id1=id id2=$[$id +1] info1=${lineinfo[$id1]} if [ ${id} -ne $linecnt ] ; then info2=${lineinfo[$id2]} else info2=L:$(cat $TMPFILE | wc -l) fi ## echo $info1,$info2 linenum1=$(echo $info1 | awk -F ‘:’ ‘{print $2}’) DeviceID=$(echo $info1 | awk -F ‘:’ ‘{print $1}’) linenum2=$(echo $info2 | awk -F ‘:’ ‘{print $2}’) SSDCNT=$(sed -n “${linenum1},${linenum2} p” $TMPFILE | grep “Inquiry Data” | grep SSD | wc -l) if [ $SSDCNT -ne 0 ] ; then Deviceidlist=”$Deviceidlist ${DeviceID}” fidonefi/bin/rm -f $TMPFILE} get_deviceidWarning=falseCritical=falsefor Devid in $Deviceidlistdo LIFE=$( $SMARTCTL -a -d megaraid,${Devid} /dev/sda | grep Media_Wearout_Indicator | awk ‘{print $4}’) Lifevalue=$[ 10#$LIFE + 0 ] resString=”" if [ $Lifevalue -le 60 ]; then Critical=True resString=”::${resString}Dev${Devid}=${Lifevalue}” elif [ $Lifevalue -le 80 ] ; then Warning=True resString=”::${resString}Dev${Devid}=${Lifevalue}” fidoneif $Critical ; then echo “Critical-SSD_Life${resString}”elif $Warning ; then echo “Warning-SSD_Life${resString}”else echo “OK”fiexit 0