thanky you for the script and for pointing to the right direction.
May I change the format of the output? (Yes, I also saw the thing with
wrong headings)
Here's a newer version. It can now read resource-stickiness and
resource_stickiness (notice the - and _). Both is possible, but up to
now, only one was looked for.
Also fixed a problem with the headings being mixed up.
I know this thing produces a lot of logs, but at least it does display
the scores, hu? :)
#!/bin/bash
# Feb 2008, Dominik Klein
# Display scores of Linux-HA resources
# Known issues:
# * cannot get resource[_failure]_stickiness values for master/slave and
clone resources
# if those values are configured as meta attributes of the
master/slave or clone resource
# instead of as meta attributes of the encapsulated primitive
if [ `crmadmin -D | cut -d' ' -f4` != `uname -n|tr "[:upper:]"
"[:lower:]"` ]
then echo "Warning: Script running not on DC. Might be slow(!)"
fi
# Heading
printf "%-16s%-16s%-16s%-16s%-16s%-16s\n" "Resource" "Score" "Node"
"Stickiness" "Failcount" "Failure-Stickiness"
2>&1 ptest -LVVVVVVV|grep -E "assign_node|rsc_location"|grep -w -E "\
[-]{0,1}[0-9]*$"|while read line
do
node=`echo $line|cut -d ' ' -f 8|cut -d ':' -f 1`
res=`echo $line|cut -d ' ' -f 6|tr -d ","`
score=`echo $line|cut -d ' ' -f 9|sed 's/1000000/INFINITY/g'`
# get meta attribute resource_stickiness
if crm_resource -g resource_stickiness -r $res --meta &>/dev/null
then
stickiness=`crm_resource -g resource_stickiness -r $res
--meta 2>/dev/null`
else if crm_resource -g resource-stickiness -r $res
--meta &>/dev/null
then
stickiness=`crm_resource -g resource-stickiness
-r $res --meta 2>/dev/null`
# if that doesnt exist, get syntax like
<primitive resource-stickiness="100"
else if ! stickiness=`crm_resource -x -r $res
2>/dev/null | grep -E "<master|<primitive|<clone" | grep -o
"resource[_-]stickiness=\"[0-9]*\"" | cut -d '"' -f 2 | grep -v "^$"`
then
# if no resource-specific
stickiness is confiugured, grep the default value
stickiness=`cibadmin -Q -o
crm_config 2>/dev/null|grep "default[_-]resource[_-]stickiness"|grep -o
-E 'value ?= ?"[^ ]*"'|cut -d '"' -f 2|grep -v "^$"`
fi
fi
fi
# get meta attribute resource_failure_stickiness
if crm_resource -g resource_failure_stickiness -r $res --meta
&>/dev/null
then
failurestickiness=`crm_resource -g
resource_failure_stickiness -r $res --meta 2>/dev/null`
else if crm_resource -g resource-failure-stickiness -r
$res --meta &>/dev/null
then
failurestickiness=`crm_resource -g
resource-failure-stickiness -r $res --meta 2>/dev/null`
else
# if that doesnt exist, get the default
value
failurestickiness=`cibadmin -Q -o
crm_config 2>/dev/null|grep "resource[_-]failure[_-]stickiness"|grep -o
-E 'value ?= ?"[^ ]*"'|cut -d '"' -f 2|grep -v "^$"`
fi
fi
failcount=`crm_failcount -G -r $res -U $node 2>/dev/null|grep
-o -E 'value ?= ?[0-9]*'|cut -d '=' -f 2|grep -v "^$"`
printf "%-16s%-16s%-16s%-16s%-16s%-16s\n" $res $score $node
$stickiness $failcount $failurestickiness
done|sort -k 1
_______________________________________________
Linux-HA mailing list
Linux-HA@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems