#!/usr/bin/perl -P
(
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);
if
(
$capacity
>= 90) {
$_
=
substr
(
$_
,0,13) .
' '
.
substr
(
$_
,13,1000);
$kbytes
/= 2;
$used
/= 2;
$oldused
/= 2;
$avail
/= 2;
$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'
);