home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/perl -P
-
- # $Header: scan_df,v 4.0 91/03/20 01:12:28 lwall Locked $
-
- # This report points out filesystems that are in danger of overflowing.
-
- (chdir '/usr/adm/private/memories') || die "Can't cd to memories: $!\n";
- `df >newdf`;
- open(Df, 'olddf');
-
- while (<Df>) {
- ($fs,$kbytes,$used,$avail,$capacity,$mounted_on) = split;
- next if $fs =~ /:/;
- next if $fs eq '';
- $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 =~ /:/;
- next if $fs eq '';
- $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) { # mark specially if in danger
- $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');
-