#!/bin/bash read -e out stat=`echo $out | sed "s/^STATUS: \([[:digit:]]\+\); .*/\1/"` out=`echo $out | sed "s/^[^;]\+; //"` if [[ "$stat" -eq "3" && "$out" =~ "ERROR : Unknown storage" ]]; then echo "OK: No user storages" exit 0 else # First sed instance cuts OK/CRITICAL and/or class from everything else; Second gets rid of < threshold %; Third creates breaks between filesystems # DISK OK: class '\''system'\'': /: 16% (OK) /export: 16% (OK) /export/home: 16% (OK) /: 16% (OK) /: 16% (OK) /rpool: 16% (OK) /var: 16% (OK)| /=16% /export=16% /export/home=16% /=16% /=16% /rpool=16% /var=16% # OK : /: 7%used(4440MB/61497MB) /var: 7%used(3971MB/61028MB) /tmp: 0%used(1MB/5186MB) : < 50 % | /=4440MB;30748;36898;0;61497 /var=3970MB;30513;36616;0;61027 /tmp=1MB;2593;3111;0;5186 pout=`echo "$out" | cut -d'|' -f1 | sed -e 's/\(^[^:]\+:\(\| class '"'"'[^:]\+:\)\) /\1
\n/;s/ : [<>] [[:digit:]]\+ %[[:space:]]*$//' -e 's/\(\(\/[^:]*\|[A-Z]\{1\}\): [^%]\+%\(used\| (\)[^)]\+)\) /\1
\n
\n/g'` perfout=`echo "$out" | cut -d'|' -f2` out="${pout} | ${perfout}" echo "$out" exit $stat fi