Linux

check_disk_util.sh

Description:

This Plugin allows to check disk utilization on hard disks. It uses iostat -x.

Examples:

check_disk_util -w 80 -c 90 -d sda
Checks /dev/sda* at 80% and 90% of disk utilization

OK: sda disk utilization 2.52%
OK: sda1 disk utilization 0.00%
OK: sda2 disk utilization 1.31%
OK: sda3 disk utilization 1.52%
OK: sda4 disk utilization 0.05%

Current Version

0.1 Gamma "Hulk state"

Last Release Date

2014-06-10

Compatible With

  • Nagios 3.x
  • Nagios 4.x

License

BSD


Project Files
Project Notes
Reviews (1) Add a Review
iostat first run is not good, Adjusts for second run
by havrla, February 29, 2016

#!/bin/bash # ---------------------------------------------------- # # File : check_disk_util.sh # Author : Esteban Monge # Email : emonge@gbm.net # Date : 10/06/2014 # Version: 0.1 Gamma "Hulk state" # ---------------------------------------------------- # device="" warning=80 critical=90 was_warning="" was_critical="" function help { echo "Usage" echo "check_disk {-w limit -c limit -d device}" echo "Options:" echo "-h" echo " Print detailed help screen" echo "-w=INTEGER" echo " Exit with WARNING status if more than INTEGER percentaje of utilization are used" echo "-c=INTEGER" echo " Exit with CRITICAL status if more than INTEGER percentaje of utilization are used" echo "-d=" echo " Device without complete route" echo " " echo "Example:" echo "check_disk_util -w 80 -c 90 -d sda1" echo " Checks /dev/sda1 at 80% and 90% of disk utilization" echo "check_disk_util -w 80 -c 90 -d sda" echo " Checks /dev/sda1, /dev/sda2, /dev/sda3, etc (regular expression) at 80% and 90% of disk utilization" exit 0 } while getopts "w:c:d:h" args; do case $args in w) warning=$OPTARG ;; c) critical=$OPTARG ;; d) device=$OPTARG ;; h) help ;; esac done if [[ $critical -lt $warning ]];then echo "UNKNOWN: Warning threshold must be lower than Critical threshold" exit 4 fi column_number=`iostat -x | grep -e "Device" | awk '{print NF}'` iostat -x 1 2 |grep -e "$device" | awk -v column=$column_number '/sd|dm/ {print $1,$column}' > /tmp/disk_utili.tmp radek=`cat /tmp/disk_utili.tmp | wc -l` polovina=`echo "$radek / 2 "| bc` cat /tmp/disk_utili.tmp | tail -n $polovina > /tmp/disk_utili1.tmp while read line do device=`echo $line | awk '{print $1}'` disk_util=`echo $line | awk '{print $2}' | cut -d "," -f1 ` if [ ${disk_util%.*} -ge $critical ];then echo "CRITICAL: $device disk utilization $disk_util%" was_critical=1 else if [ ${disk_util%.*} -ge $warning ];then echo "WARNING: $device disk utilization $disk_util%" was_warning=1 else echo "OK: $device disk utilization $disk_util%" fi fi done



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4.5 (2)
Favorites
1
Views
21,894