From 64817f5b81a4e0bbd3f2bbde54836870d2cb4b66 Mon Sep 17 00:00:00 2001 From: Jack-Benny Persson Date: Fri, 20 Dec 2013 09:11:33 +0100 Subject: [PATCH] =?UTF-8?q?Almost=20finished=20=C3=96vning=205,=20labb=206?= =?UTF-8?q?=20(Disk=20usage)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Labb6/ovning5.sh | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/Labb6/ovning5.sh b/Labb6/ovning5.sh index d2d40d2..052dae6 100755 --- a/Labb6/ovning5.sh +++ b/Labb6/ovning5.sh @@ -1,10 +1,46 @@ #!/bin/bash -for i in `df -h | awk '/\/dev\/sd*/ { print $1 }'`; do - Disk[$Nr]=$i +# Jack-Benny Persson +# LX13 +# Övning 5, labb 6 +# Monitor disk usage and send a warning if it exceeds N% + +# Set some variables +Df="/bin/df" +Awk="/usr/bin/awk" +Sed="/bin/sed" +Warn=80 # Warn a how many percent full? + +# Sanity checks +for bin in $Df $Awk $Sed; do + if [ ! -x $bin ]; then + echo "Can't execute $bin" + exit 2 + fi +done + +# Get the disks +for dev in `df -h | awk '/\/dev\/sd*/ { print $1 }'`; do + Disk[$Nr]=$dev ((Nr++)) done -echo ${Disk[@]} +# Get the usage percentage +for percent in `df -h | awk '/\/dev\/sd*/ { print $5 }' | sed 's/%//'`; do + Use[$UseNr]=$percent + ((UseNr++)) +done + +# Main (Calculate usage and send warnings) +DiskDev=0 +for i in ${Use[@]}; do + if [ $i -gt $Warn ]; then + echo "Disk ${Disk[$DiskDev]} is ${Use[$DiskDev]}% full" + logger "Disk ${Disk[$DiskDev]} is ${Use[$DiskDev]}% full" + ((DiskDev++)) + fi +done + +# Just exit in quiet if no warnings are issued exit 0