• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 352
  • Last Modified:

Monitor capacity of directory only

I am really stuck on finding a solution to a problem here.
I have a directory located at /lcl/app/prd/test1

I would like to be able to do the following...
Find the allowed space given to the directory test1.
Then find the capacity at which the directory test1 is at.

I was doing it this way...
space=`df -bhk /lcl/app/prd/test1| cut -d "y" -f1 | awk '{print$5}'`

However that seems to give me the capacity of the whole mount.  I only want a capacity of the directory test1, nothing before it should be included in the calculation.

I also thought of using the du command however I do not understand how to first look at the space given to the directory test1 and then how to compare that to the results of du since du does not give capacity.  I am not sure how to convert that into a capacity number which is exactly what I must have.

For example I would like to know if the directory test1 is at 80% capacity.
Again I do not want the whole filesystem... ONLY the directory test1.

Can anyone help me with this?  I am having a hard time figuring it out and I can not seem to find any answers on it.  Thank you in aadvance.

  • 4
1 Solution

unless you were using quotas, there is no such thing as 'directory capacity'.
So you're on the right track when using 'df'.
Should there be quotas, however, you can check with
'repquota /lcl/app/prd/test1'
Note, however, that quotas exist only on a per-user basis.
LarryRobertsAuthor Commented:
The issue is I am not sure how to check for what the amount of storage that was given to that directory in the first place so that I can run the df return number against the amount of storage given number to see what percentage of that is full.  Or for that matter how to turn the value given from the df into a percentage.
df gives you a percentage!
Look at the column titled 'Use%' (or the like, depending on your Unix flavor).
... or do you want to know the percentage of space a directory occupies related to the whole filesystem?
If so, here is a script -
  [ $# -ne 1 ] && echo "Usage: $0 [/path/to/dir]" && exit
  dirsize=$(du -ks $dir | awk '{print $1}')
  DF=$(df -k $dir | grep -v Filesystem | awk '{print $2,$NF}')
set $DF
dirpct=$(echo $dirsize $fssize | awk '{printf "%3.2f", $1 * 100 / $2}')
  echo "$dir occupies ${dirpct}% of the filesystem $mp"
Save it under a scriptname of your choice, make it executable by issuing 'chmod +x scriptname', call it by 'scriptname /path/to/dir' (as root) and have fun!
Don't worry about the #!/bin/ksh
The script will run under bash as well!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now