diff --git a/check_svcs b/check_svcs index 74a48ce38f57d5d9fc248a05a4ea2d65d1b80dc1..634fdc42adb2f66bc78e5c145526117886d38936 100755 --- a/check_svcs +++ b/check_svcs @@ -46,18 +46,13 @@ fi RC=0 -nawk '($1 ~ /svc:*/) { print $1 }' <$TMP | while read svc; do - RC=1 - SL="${SL} ${svc}" -done - -case "$RC" in - 0) - echo "OK - All services running" - exit 0 - ;; - 1) - echo "WARNING - Services not running:${SL}" - exit 1 - ;; -esac +nawk '\ + BEGIN { sev=0; services="" } \ + ($1 ~ /^svc:*/) { service=$1 } \ + ($1 == "State:") { if ($2 == "maintenance") { sev=2 } else if (sev < 2) { sev=1 }; services=services" "service } \ + END { if (sev == 0) { print "OK - All enabled services running" } \ + else if (sev == 1) { print "WARNING - Problem services:"services } \ + else { print "CRITICAL - Problem services:"services }; \ + exit sev }' <$TMP + +exit $?