Bug #1014

xymon disk script skip disks used in raid and list the raid disks

Added by thekingofspain almost 7 years ago. Updated almost 7 years ago.

Status:Closed Start date:05/06/2017
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:- Spent time: -
Target version:-

Description

the xymon-smart.sh and xymon-hddtmp.sh scripts have the following like the query disks:

ls /dev/disk/by-id/* | grep ve '-part' -ve '/wwn' |

the line should be the following to remove the mdadm raid devices:

ls /dev/disk/by-id/* | grep ve '-part' -ve '/wwn' ve '/md' |

In addition an the disks being used in mdadm raid are not going to to be listed in the subsequent mount query thus
an addition check should be added to agaist the /proc/mdstat for the mounted raid disk

#check if device is directly mounted
if ! mount | grep -q /dev/$DISKDEV
then # check if device is mounted by mdadm
if ! cat /proc/mdstat | grep -q $DISKDEV
then
continue
fi
fi

Related issues

related to LinHES - Feature #1012: xymon scripts that query /dev/disk/by-id look at the wron... Closed 05/06/2017

History

xymon-hddtemp.sh
#!/bin/sh

  1. NOTE: Must be run as root, so you probably need to setup sudo for this.

ls /dev/disk/by-id/* | grep ve '-part' -ve '/md' ve '/wwm ' |
while read DISK
do
DISKDEV=`ls -l $DISK | awk -F/ '{print $NF}'`
DISKNAME=`echo $DISK | awk -F/ '{print $5}' | tr ":" "_"`

#check if device is optical
if [[ $DISKDEV == "sr"* ]]
then
continue
fi
#check if device is mounted
if ! mount | grep -q /dev/$DISKDEV
then # check if device is used by mdadm
if ! cat /proc/mdstat | grep -q $DISKDEV
then
continue
fi
fi
#check if SMART is disabled and enable
DRES=`sudo /usr/bin/smartctl -A $DISK`
if [[ $DRES == "SMART Disabled. Use option -s with argument 'on'" ]]
then
sudo /usr/bin/smartctl -s on $DISK
DRES=`sudo /usr/bin/smartctl -A $DISK`
fi
hddtemp=`echo "$DRES" | grep Temperature_Celsius | awk '{print $10}'`
TEMP=": $hddtemp" 
if [[ $hddtemp == "" ]]
then
TEMP="- No Temp Sensor Found"
COLOR="4&clear"
elif test $hddtemp -gt 55
then
COLOR="1&red"
elif test $hddtemp -ge 50
then
COLOR="2&yellow"
else
COLOR="3&green"
fi
echo "${COLOR} $DISKNAME $TEMP"

done > /tmp/hddcheck

COLOR=`cat /tmp/hddcheck | awk '{print $1}' | sort | uniq | head 1 | cut -c3`

  1. Report status to Xymon Server
    $XYMON $XYMSRV "status ${MACHINE}.hddtemp ${COLOR} Hard Drive Temperatures (in &degC)

Updated by brfransen almost 7 years ago

  • Status changed from New to Closed

duplicate to #1012

Also available in: Atom PDF