diff --git a/xymon/plugins/client/ext/sge.sh b/xymon/plugins/client/ext/sge.sh index 6bfa3fe..4cebcae 100755 --- a/xymon/plugins/client/ext/sge.sh +++ b/xymon/plugins/client/ext/sge.sh @@ -168,47 +168,45 @@ get_status() ### Check queue instance states ### queueTriggered=false; - # Queueset=$(${QHOST} -h ${MACHINEDOTS} -q | tail +5 | awk '{ print $1 }') ${QHOST} -h "${MACHINEDOTS}" -q | tail +5 > "${PLUGIN_RESULT}.QSTATE" - Queueset=$(< "${PLUGIN_RESULT}.QSTATE" awk '{ print $1 }') - for Qset in $Queueset; do - # qstate=$(${QHOST} -q -h "${MACHINEDOTS}" | tail +5 | grep " $Qset" | awk '{print $4}') - qstate=$(grep " $Qset" "${PLUGIN_RESULT}.QSTATE" | awk '{print $4}') + while IFS= read -r _LINE; do + queue=$(printf -- '%s' "${_LINE}" | awk '{ print $1 }') + qstate=$(printf -- '%s' "${_LINE}" | awk '{ print $4 }') # Order determines more significant alert status if [ "$(echo "${qstate}" | grep -c d)" != "0" ]; then - echo "4&clear $Qset@$HOST is DISABLED" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$CLEAR_PIC $Qset@$HOST is DISABLED") + echo "4&clear $queue@$HOST is DISABLED" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$CLEAR_PIC $queue@$HOST is DISABLED") queueTriggered=true; elif [ "$(echo "${qstate}" | grep -c E)" != "0" ]; then - echo "1&red $Qset@$HOST is in ERROR!" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$RED_PIC $Qset@$HOST is in ERROR!") + echo "1&red $queue@$HOST is in ERROR!" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$RED_PIC $queue@$HOST is in ERROR") queueTriggered=true; elif [ "$(echo "${qstate}" | grep -c c)" != "0" ]; then - echo "2&yellow $Qset@$HOST has an ambigious configuration!" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$YELLOW_PIC $Qset@$HOST has an ambigious configuration!") + echo "2&yellow $queue@$HOST has an ambigious configuration!" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$YELLOW_PIC $queue@$HOST has an ambigious configuration!") queueTriggered=true; elif [ "$(echo "${qstate}" | grep -c a)" != "0" ] || \ [ "$(echo "${qstate}" | grep -c A)" != "0" ]; then - echo "2&yellow $Qset@$HOST is in ALARM" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$YELLOW_PIC $Qset@$HOST is in ALARM
$Qset") + echo "2&yellow $queue@$HOST is in ALARM" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$YELLOW_PIC $queue@$HOST is in ALARM") elif [ "$(echo "${qstate}" | grep -c s)" != "0" ] || \ [ "$(echo "${qstate}" | grep -c S)" != "0" ]; then - echo "2&yellow $Qset@$HOST is SUSPENDED" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$YELLOW_PIC $Qset@$HOST is SUSPENDED") + echo "2&yellow $queue@$HOST is SUSPENDED" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$YELLOW_PIC $queue@$HOST is SUSPENDED") elif [ "$(echo "${qstate}" | grep -c u)" != "0" ]; then - echo "2&yellow $Qset@$HOST is UNAVAILABLE" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$YELLOW_PIC $Qset@$HOST is UNAVAILABLE!") + echo "2&yellow $queue@$HOST is UNAVAILABLE" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$YELLOW_PIC $queue@$HOST is UNAVAILABLE!") queueTriggered=true; elif [ "$qstate" = "" ]; then - echo "3&green $Qset@$HOST is OK" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$GREEN_PIC $Qset@$HOST is OK") + echo "3&green $queue@$HOST is OK" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$GREEN_PIC $queue@$HOST is OK") else - echo "5&purple $Qset@$HOST is UNKNOWN" >> "${PLUGIN_STATE}" - queueMsg=$(echo "$queueMsg
$UNKNOWN_PIC $Qset@$HOST is UNKNOWN") + echo "5&purple $queue@$HOST is UNKNOWN" >> "${PLUGIN_STATE}" + queueMsg=$(echo "$queueMsg
$UNKNOWN_PIC $queue@$HOST is UNKNOWN") queueTriggered=true; fi - done + done < "${PLUGIN_RESULT}.QSTATE" if [ -f "${PLUGIN_RESULT}.QSTATE" ]; then rm -f -- "${PLUGIN_RESULT}.QSTATE"