Subscribedu -s -h
#!/usr/bin/perl
$dir = $ARGV[0];
($ARGV[0] && (-d $ARGV[0])) || die "Please specify a directory first\n";
open (IN,"du -hx $dir |") || die "Unable to open DU for $dir : $!\n";
while (){
$_=~s/^\s+//;
my $file = $_;
next unless ($_=~s/^([\d\.]+[MKG])//);
my $size = $1;
if ($size=~s/G//){
$size *= 1024;
$size *= 1024;
}
elsif ($size=~s/M//){
$size *= 1024;
}
else{
$size=~s/K//;
}
$file=~s/^\s+//;
$file=~s/\s+$//;
my $nsize = sprintf("%030.2f",$size) . "\n";
$entries{"$nsize$file"} = $file;
}
foreach (sort { $b <> $a } keys %entries){
print $entries{$_} . "\n";
}
exit(0);
>
rm /var/log/messageswill actually free up any storage. If any program (e.g., syslogd) had /var/log/messages open, the space will not be freed until it is closed.
You are not logged in, either login or create an account to post comments
posted by Steve3 at 4:20 PM on June 22, 2006