#!/usr/bin/perl our $used = get_used_space("/path/to/dir",10000000); print "Used space -> $used %\n"; sub get_used_space { my $dir = shift; my $max = shift; if ($max <= 0) { return 0; } my $current_size = get_space($dir); return int(($current_size / $max) * 10000)/100; } sub get_space { my $dir = shift; my $d; my $bytes = 0; opendir($d,$dir); while (my $f = readdir($d)) { if ($f eq '.' || $f eq '..') { next; } my $file = "$dir/$f"; if (-d $file) { $bytes += get_space("$file"); } if (-f $file) { my $size = -s "$file"; $bytes += $size; } } return $bytes; }