perl 4.0.00: (no release announcement available)
[p5sagit/p5-mst-13.2.git] / eg / scan / scan_df
CommitLineData
378cc40b 1#!/usr/bin/perl -P
2
fe14fcc3 3# $Header: scan_df,v 4.0 91/03/20 01:12:28 lwall Locked $
378cc40b 4
5# This report points out filesystems that are in danger of overflowing.
6
a687059c 7(chdir '/usr/adm/private/memories') || die "Can't cd to memories: $!\n";
378cc40b 8`df >newdf`;
9open(Df, 'olddf');
10
11while (<Df>) {
12 ($fs,$kbytes,$used,$avail,$capacity,$mounted_on) = split;
13 next if $fs =~ /:/;
14 next if $fs eq '';
15 $oldused{$fs} = $used;
16}
17
18open(Df, 'newdf') || die "scan_df: can't open newdf";
19
20while (<Df>) {
21 ($fs,$kbytes,$used,$avail,$capacity,$mounted_on) = split;
22 next if $fs =~ /:/;
23 next if $fs eq '';
24 $oldused = $oldused{$fs};
25 next if ($oldused == $used && $capacity < 99); # inactive filesystem
26 if ($capacity >= 90) {
27#if defined(mc300) || defined(mc500) || defined(mc700)
28 $_ = substr($_,0,13) . ' ' . substr($_,13,1000);
29 $kbytes /= 2; # translate blocks to K
30 $used /= 2;
31 $oldused /= 2;
32 $avail /= 2;
33#endif
34 $diff = int($used - $oldused);
35 if ($avail < $diff * 2) { # mark specially if in danger
36 $mounted_on .= ' *';
37 }
38 next if $diff < 50 && $mounted_on eq '/';
39 $fs =~ s|/dev/||;
40 if ($diff >= 0) {
41 $diff = '(+' . $diff . ')';
42 }
43 else {
44 $diff = '(' . $diff . ')';
45 }
46 printf "%-8s%8d%8d %-8s%8d%7s %s\n",
47 $fs,$kbytes,$used,$diff,$avail,$capacity,$mounted_on;
48 }
49}
50
51rename('newdf','olddf');