diff --git a/check_lysrdiff b/check_lysrdiff index ab88e2416c2e56c5ae473a41239270b506651441..86283a20a9282a4d8d0353e3b5e585dbd3faa0ca 100755 --- a/check_lysrdiff +++ b/check_lysrdiff @@ -42,6 +42,18 @@ disk=$1 part=$2 BASE=/lysrdiff/$disk/perm/$part +# Emit a list of the first few backup jobs. Keep the output small, by +# ending it with "and others" if it becomes too long. ~200 characters +# are OK. +list_jobs() +{ + awk 'BEGIN { sz = 0 } + NR > 1 && sz < 198 { printf ", "; sz += 2 } + sz < 200 { printf "%s", $3; sz += length($3) } + END { if (sz >= 200) printf ", others" } ' \ + | sed s'/, \([^,]*\)$/ and \1/' +} + if [ ! -f $BASE/lysrdiff.id ] then echo CRITICAL - $BASE/lysrdiff.id: no such file @@ -103,12 +115,7 @@ then echo -n " (also $STALE stale)" fi echo -n ": " - sed -n 's/--fail$//p' $state \ - |awk 'BEGIN { sz = 0 } - NR > 1 && sz < 198 { printf ", "; sz += 2 } - sz < 200 { printf "%s", $3; sz += length($3) } - END { if (sz >= 200) printf ", others" } ' \ - |sed s'/, \([^,]*\)$/ and \1/' + sed -n 's/--fail$//p' $state | list_jobs echo ". | $PERF" exit 2 fi @@ -121,11 +128,7 @@ then echo -n " (also $FAILED failed)" fi ( sed -n 's/--fail$//p' $state; sed 's/--start$//' $state-stale; ) \ - |awk 'BEGIN { sz = 0 } - NR > 1 && sz < 198 { printf ", "; sz += 2 } - sz < 200 { printf "%s", $3; sz += length($3) } - END { if (sz >= 200) printf ", others" } ' \ - |sed s'/, \([^,]*\)$/ and \1/' + | list_jobs echo ". | $PERF" exit 2 fi @@ -138,12 +141,7 @@ then echo -n " (also $STALE stale)" fi echo -n ": " - sed -n 's/--fail$//p' $state \ - |awk 'BEGIN { sz = 0 } - NR > 1 && sz < 198 { printf ", "; sz += 2 } - sz < 200 { printf "%s", $3; sz += length($3) } - END { if (sz >= 200) printf ", others" } ' \ - |sed s'/, \([^,]*\)$/ and \1/' + sed -n 's/--fail$//p' $state | list_jobs echo ". | $PERF" exit 1 fi @@ -151,12 +149,7 @@ fi if [ $STALE -gt 0 ] then echo -n "WARNING - $STALE stale backups: " - sed 's/--start$//' $state-stale \ - |awk 'BEGIN { sz = 0 } - NR > 1 && sz < 198 { printf ", "; sz += 2 } - sz < 200 { printf "%s", $3; sz += length($3) } - END { if (sz >= 200) printf ", others" } ' \ - |sed s'/, \([^,]*\)$/ and \1/' + sed 's/--start$//' $state-stale | list_jobs echo ". | $PERF" exit 1 fi