#!/bin/perl -P

(chdir '/usr/adm/private/memories') || die "Can't cd.";
`df >newdf`;
open(Df, 'olddf');

while (<Df>) {
    ($fs,$kbytes,$used,$avail,$capacity,$mounted_on) = split;
    next if $fs =~ /:/;
    $oldused{$fs} = $used;
}

open(Df, 'newdf') || die "scan_df: can't open newdf";

while (<Df>) {
    ($fs,$kbytes,$used,$avail,$capacity,$mounted_on) = split;
    next if $fs =~ /:/;
    $oldused = $oldused{$fs};
    next if ($oldused == $used && $capacity < 99);      # inactive filesystem
    if ($capacity >= 90) {
#if defined(mc300) || defined(mc500) || defined(mc700)
        $_ = substr($_,0,13) . '        ' . substr($_,13,1000);
        $kbytes /= 2;           # translate blocks to K
        $used /= 2;
        $oldused /= 2;
        $avail /= 2;
#endif
        $diff = int($used - $oldused);
        if ($avail < $diff * 2) {
            $mounted_on .= ' *';
        }
        next if $diff < 50 && $mounted_on eq '/';
        $fs =~ s|/dev/||;
        if ($diff >= 0) {
            $diff = '(+' . $diff . ')';
        }
        else {
            $diff = '(' . $diff . ')';
        }
        printf "%-8s%8d%8d %-8s%8d%7s    %s\n",
            $fs,$kbytes,$used,$diff,$avail,$capacity,$mounted_on;
    }
}

rename('newdf','olddf');
