I added in the dir_list. It works great! I also added the dir_size routine,
but had some trouble. Everything reported 0 as the size until I commented
out:
chdir("$l_physicaldirectory");
And changed the next line to:
opendir(THISDIR, "$l_physicaldirectory");
Even then I had some trouble. Even though it printed out correctly, the
numbers didn't trigger the warnings. I left the routine in, but commented it
all out until it works better. Can you fix it? The old one though crude,
seems to work for now.
Can you change it to report only mailbox size (*.MBX), not the entire
directory. It gets called by "$mbx_size = dir_size($dir . "\\*.mbx");"
One thing I discovered is that the Imail administrator program reports the
mailbox size as the entire directory size, while the web interface reports
the total of all MBX files as the mailbox size.
I've attached a copy of the script that has been updated to include the new
dir_list routine and a two level warning system. Caution at 90% capacity and
warning at 95% capacity. This is adjustable in the "$notify_window = .10
line". Higher numbers mean users start getting warned earlier. Maybe we
could pass this as a command line parameter.
I agree, once we get the script working good it would be great if you
compiled it. Thanks for the help everyone.
-----Original Message-----
From: David Gregg
To: [EMAIL PROTECTED]
Sent: 4/27/00 7:14 PM
Subject: Re: [IMail Forum] *Working* - issue warnings to users approaching
the mailboxsize limit
Bear with me here folks. One more post of perl code that you can
implement
to remove the last reference to the 'DIR' command used in the latest
version
of limit.pl
Joel, once this script has made it's rounds and everybody is happy with
it,
let me know and I'd be glad to compile it into an exe so the non-perl
folks
can benefit too.
# replace the dir_size subroutine with this one and you will no longer
have
any dependance on the DIR command
sub dir_size {
local($l_physicaldirectory) = @_;
local(@l_allfiles, $l_dirsize, $l_filename);
local($l_fdev, $l_fino, $l_fmode, $l_fnlink, $l_fuid, $l_fgid,
$l_frdev,
$l_fsize, $l_fatime, $l_fmtime, $l_fctime, $l_fblksize, $l_fblocks);
chdir("$l_physicaldirectory");
opendir(THISDIR, ".");
@l_allfiles = grep(!-d, readdir(THISDIR));
closedir(THISDIR);
$l_totsize = 0;
foreach $l_filename (@l_allfiles) {
($l_fdev, $l_fino, $l_fmode, $l_fnlink, $l_fuid, $l_fgid, $l_frdev,
$l_fsize, $l_fatime, $l_fmtime, $l_fctime, $l_fblksize, $l_fblocks) =
stat("$l_physicaldirectory/$l_filename");
$l_dirsize += $l_fsize;
}
return $l_dirsize;
}
limit.pl