Linux Shell Script To Check Disk Usage Is Out Of Space

Script that check used space on all mounted devices and warn if the used space is more than the threshold. In this scenario we were using 25% of disk, that's why threshold is so small.

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

bobbin@linoxide:/$ 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

bobbin@linoxide:/$ ./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

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 Archive Page

Have anything to say?

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.