|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/logwatch/scripts/services/ |
Upload File : |
##########################################################################
# $Id: zz-disk_space,v 1.16 2006/02/19 22:57:22 bjorn Exp $
##########################################################################
$| = 1;
use POSIX qw(uname);
my (%Config);
$ENV{PRINTING} = "y";
my $Ouput = $ENV{'LOGWATCH_OUTPUT_TYPE'} || 0;
my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
my $logwatch_hostname = $ENV{'LOGWATCH_ONLY_HOSTNAME'};
my $show_home_dir_sizes = $ENV{'show_home_dir_sizes'} || 0;
my $home_dir = $ENV{'home_dir'} || 0;
my $show_mail_dir_sizes = $ENV{'show_mail_dir_sizes'} || 0;
my $mail_dir = $ENV{'mail_dir'} || 0;
my $show_disk_usage = $ENV{'show_disk_usage'} || 0;
my $df_options;
my $disk_cmd;
my ($OSname, $hostname, $release, $version, $machine) = POSIX::uname();
$hostname =~ s/\..*//;
exit (0) if ($ENV{'LOGWATCH_ONLY_HOSTNAME'} and ($logwatch_hostname ne $hostname));
if ( $Debug >= 5 ) {
print STDERR "\n\nDEBUG: Inside zz-disk-space Filter \n\n";
$DebugCounter = 1;
}
sub DirUsage {
my $Dir = $_[0];
if ($OSname eq "Linux") {
system("du -s --block-size=1048576 -h $Dir | sort -n -r -k 1");
} elsif ($OSname eq "Darwin") {
system("du -s --block-size=1048576 -h $Dir | sort -n -r -k 1");
} elsif ($OSname eq "SunOS") {
if ( ($release eq "5.10") || ($release eq "5.9") ) {
system("/usr/xpg4/bin/du -s -h $Dir | sort -n -r -k 1");
} else {
system("du -s $Dir | sort -n -r -k 1");
}
} elsif ($OSname eq "HP-UX") {
system("du -s -k $Dir | sort -n -r -k 1");
} else {
system("du -s -h $Dir | sort -n -r -k 1");
}
}
sub DirectorySizes
{
my $Dir = $_[0];
DirUsage($Dir.'/*');
}
sub HomeDirectorySizes
{
my $HomeDir = $_[0];
print "\n\n------------- Home Directory Sizes ---------------\n\n";
print "Size Location\n";
print "(MB)\n";
DirectorySizes($HomeDir);
print "\n\n------------- Home Directory Sizes ---------------\n\n";
}
sub MailDirectorySizes
{
my $MailDir = $_[0];
print "\n\n------------- Mail Directory Sizes ---------------\n\n";
print "Size Location\n";
print "(MB)\n";
DirectorySizes($MailDir);
print "\n\n------------- Mail Directory Sizes ---------------\n\n";
}
sub DiskUsage ()
{
my $Dir = $_[0];
print "\n\n------------- Directory Sizes ---------------\n\n";
print "Size Location\n";
print "(GB)\n";
if ($OSname eq "Linux") {
DirUsage("/var/log");
DirUsage("/usr");
} elsif ($OSname eq "Darwin") {
DirUsage("/var/log");
DirUsage("/usr");
} elsif ($OSname eq "SunOS") {
DirUsage("/var/log");
DirUsage("/usr");
DirUsage("/opt");
} elsif ($OSname eq "HP-UX") {
DirUsage("/var/adm");
DirUsage("/usr");
DirUsage("/opt");
} else {
DirUsage("/var/log");
DirUsage("/usr");
DirUsage("/opt");
}
print "\n\n------------- Directory Sizes ---------------\n\n";
}
sub DiskSpace ()
{
if ($OSname eq "Linux") {
$df_options = "-h -l -P -x tmpfs";
} elsif ($OSname eq "Darwin") {
$df_options = "-h -l";
} elsif ($OSname eq "SunOS") {
if ( ($release eq "5.10") || ($release eq "5.9") ) {
$df_options = "-h -l";
} else {
$df_options = "-l";
}
} elsif ($OSname eq "HP-UX") {
$df_options = "-l";
} else {
$df_options = "-l";
}
if ( $ENV{'df_options'} ) {
$df_options = $ENV{'df_options'};
};
if ($OSname eq "Linux") {
$disk_cmd = "df $df_options";
} elsif ($OSname eq "Darwin") {
$disk_cmd = "df $df_options";
} elsif ($OSname eq "SunOS") {
$disk_cmd = "/usr/xpg4/bin/df $df_options";
} elsif ($OSname eq "HP-UX") {
$disk_cmd = "bdf $df_options";
} else {
$disk_cmd = "df $df_options";
}
if ( $ENV{'disk_cmd'} ) {
$disk_cmd = $ENV{'disk_cmd'};
};
system($disk_cmd);
print "\n";
}
#####################
#Main
#Only show disk space "df" by default -mgt
DiskSpace();
if ( $show_disk_usage == 1 ) { DiskUsage(); }; #Turn on in zz-disk_space.conf
if (($Detail > 10) || ($show_home_dir_sizes == 1)) { #set in zz-disk_space.conf -mgt
HomeDirectorySizes($home_dir);
}
if (($Detail > 10) || ($show_mail_dir_sizes == 1)) { #set in zz-disk_space.conf -mgt
MailDirectorySizes($mail_dir);
}
# vi: shiftwidth=3 tabstop=3 syntax=perl et