Build precise queries to find exactly what you need
Press ESC to close
I have created a patched version between original version and philippn’s one. This patch:
* Runs iostat just once. * Avoids the conversion between ‘.’ and ‘,’ by running iostat with LANG=C * Gets actual values not the ones from last reboot. * Runs from bash
This is the patch:
Index: check_iostat =================================================================== — check_iostat (revisión: 11002) +++ check_iostat (copia de trabajo) @@ -1,9 +1,20 @@ -#!/bin/sh +#!/bin/bash # # Version 0.0.2 – Jan/2009 # Changes: added device verification +# +# by Thiago Varela – [email protected] # -# by Thiago Varela – [email protected] +# ————————————– +# +# Version 0.0.3 – Dec/2011 +# Changes: +# – changed values from bytes to mbytes +# – fixed bug to get traffic data without comma but point +# – current values are displayed now, not average values (first run of iostat) +# +# by Philipp Niedziela – [email protected] +#
iostat=`which iostat 2>/dev/null` bc=`which bc 2>/dev/null` @@ -50,14 +61,19 @@ echo “ERROR: critical levels must be highter than warning levels” && help
+# iostat parameters: +# -m: megabytes +# -k: kilobytes +# first run of iostat shows statistics since last reboot, second one shows current vaules of hdd # Doing the actual check: -tps=`$iostat $disk | grep $disk | awk ‘{print $2}’` -kbread=`$iostat $disk | grep $disk | awk ‘{print $3}’` -kbwritten=`$iostat $disk | grep $disk | awk ‘{print $4}’` +# We get just 2nd line, which is the actual value +output=$(LANG=C $iostat $disk -d 1 2 | grep $disk | sed -n ‘2p’) +tps=$(echo “$output” | awk ‘{print $2}’) +kbread=$(echo “$output” | awk ‘{print $3}’) +kbwritten=$(echo “$output” | awk ‘{print $4}’)
– # Comparing the result and setting the correct level: -if ( [ “`echo “$tps >= $crit_tps” | bc`” == “1” ] || [ “`echo “$kbread >= $crit_read” | bc`” == “1” ] || +if ( [ “`echo “$tps >= $crit_tps” | bc`” == “1” ] || [ “`echo “$kbread >= $crit_read” | bc -q`” == “1” ] || [ “`echo “$kbwritten >= $crit_written” | bc`” == “1” ] ); then msg=”CRITICAL” status=2
We’ve completely redesigned the world’s largest repository of Nagios plugins and monitoring tools. Join thousands of users sharing monitoring solutions for servers, applications, and everything in between.
Due to our redesign, all existing accounts require a password reset to access your account again.
Ready to explore 6,100+ projects and contribute to the community?
Reset Password Create Account
Happy Monitoring!