Shell Script to Check Disk Usage is Out Of Space

Shell Script that checks the used space on all mounted devices and warns if the used space is more than the threshold.

more shell scripts

Linux Shell Script

#!/bin/bash

threshold="20"

i=2

result=`df -kh |grep -v "Filesystem" | awk '{ print $5 }' | sed 's/%//g'`

for percent in $result; do

if ((percent > threshold))
then

partition=`df -kh | head -$i | tail -1| awk '{print $1}'`

echo "$partition at $(hostname -f) is ${percent}% full"

fi

let i=$i+1

done

Test Script Result

[email protected]:/$ df -kh
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 52G 4.7G 45G 10% /
tmpfs 1.9G 0 1.9G 0% /lib/init/rw
udev 1.9G 192K 1.9G 1% /dev
tmpfs 1.9G 2.6M 1.9G 1% /dev/shm
/dev/sda6 92G 22G 66G 25% /home

[email protected]:/$ ./df_script.sh
/dev/sda6 at linoxide.lviv.example.com is 25% full

Learn Above Shell Script

#This set threshold value

threshold=”20″

#Counter, will be used later, set to 2, since first line in df output is description.

i=2

#Getting list of percentage of all disks, df -kh show all disk usage, grep -v – without description line, awk ‘{ print $5 }’ – we need only 5th value from line and sed ‘s/%//g’ – to remove % from result.

result=`df -kh |grep -v “Filesystem” | awk ‘{ print $5 }’ | sed ‘s/%//g’`

#for every value in result we start loop.

for percent in $result; do

#compare, if current value bigger than threshold, if yes next lines.

if ((percent > threshold))

then

#taking name of partition, here we use counter. Df list of all partitions, head – take only $i lines from top, tail -1 take only last line, awk ‘{print $1}’ – take only first value in line.

partition=`df -kh | head -$i | tail -1| awk ‘{print $1}’`

#print to console – what partition and how much used in %.

echo “$partition at $(hostname -f) is ${percent}% full”

#end of if loop

fi

#counter increased by 1.

let i=$i+1

#end of for loop.

done

Bobbin Zachariah 4:37 pm

About Bobbin Zachariah

Founder of LinOxide, passionate lover of Linux and technology writer. Started his career in Linux / Opensource from 2000. Love traveling, blogging and listening music. Reach Bobbin Zachariah about me page and google plus page.

Author's All Posts
Like to become part of Linoxide Team and contribute tips? Contact us here.

Comments

Your email address will not be published. Required fields are marked *

All comments are subject to moderation.

2 Comments

  1. Hi,

    I got that error during runtime,Please refer below and take care!

    line 11: ((: /: syntax error: operand expected (error token is "/")

    Thanks,
    Sutanu

  2. I am not familiar with scripting.Please help me if i want output for multiple remote server.
    Where i need to change the script.