From c3cee871b4b3f17447f1ddfd609ab5b12f5bfcb4 Mon Sep 17 00:00:00 2001 From: Per Cederqvist <cederp@opera.com> Date: Thu, 12 Dec 2024 11:59:32 +0100 Subject: [PATCH] Simplify check_lysrdiff --- check_lysrdiff | 84 ++++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/check_lysrdiff b/check_lysrdiff index 86283a2..0405ef7 100755 --- a/check_lysrdiff +++ b/check_lysrdiff @@ -107,58 +107,60 @@ ACTIVITY=`wc -l < $state-active` PERF="activity=$ACTIVITY stale=$STALE failed=$FAILED" -if [ $FAILED -gt 10 ] -then - echo -n "CRITICAL - $FAILED failed backups" - if [ $STALE -gt 0 ] - then - echo -n " (also $STALE stale)" - fi - echo -n ": " - sed -n 's/--fail$//p' $state | list_jobs - echo ". | $PERF" - exit 2 -fi +worst=0 +state_word=OK +message="" -if [ $STALE -gt 10 ] -then - echo -n "CRITICAL - $STALE stale backups" - if [ $FAILED -gt 0 ] - then - echo -n " (also $FAILED failed)" - fi - ( sed -n 's/--fail$//p' $state; sed 's/--start$//' $state-stale; ) \ - | list_jobs - echo ". | $PERF" - exit 2 -fi +set_state() +{ + if [ $1 -gt $worst ] + then + worst=$1 + state_word=$2 + fi + + if [ -n "$3" ] + then + if [ -z "$message" ] + then + message="$3" + else + message="$message $3" + fi + fi +} if [ $FAILED -gt 0 ] then - echo -n "WARNING - $FAILED failed backups" - if [ $STALE -gt 0 ] - then - echo -n " (also $STALE stale)" - fi - echo -n ": " - sed -n 's/--fail$//p' $state | list_jobs - echo ". | $PERF" - exit 1 + msg="$FAILED failed backups: `sed -n 's/--fail$//p' $state | list_jobs`." + if [ $FAILED -gt 10 ] + then + set_state 2 CRITICAL "$msg" + else + set_state 1 WARNING "$msg" + fi fi if [ $STALE -gt 0 ] then - echo -n "WARNING - $STALE stale backups: " - sed 's/--start$//' $state-stale | list_jobs - echo ". | $PERF" - exit 1 + msg="$STALE stale backups: `sed 's/--start$//' $state-stale | list_jobs`." + if [ $STALE -gt 10 ] + then + set_state 2 CRITICAL "$msg" + else + set_state 1 WARNING "$msg" + fi fi if [ $ACTIVITY = 0 ] then - echo "WARNING - No activity. | $PERF" - exit 1 + set_state 1 WARNING "No activity." +fi + +if [ -z "$message" ] +then + set_state 0 OK "all ok." fi -echo "OK - all ok. | $PERF" -exit 0 +echo "$state_word - $message | $PERF" +exit $worst -- GitLab