Bug #1014
xymon disk script skip disks used in raid and list the raid disks
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
Updated by thekingofspain over 7 years ago
xymon-hddtemp.sh
#!/bin/sh¶
- 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`
- Report status to Xymon Server
$XYMON $XYMSRV "status ${MACHINE}.hddtemp ${COLOR} Hard Drive Temperatures (in °C)
Updated by brfransen over 7 years ago
- Status changed from New to Closed
duplicate to #1012