#!/usr/bin/perl

# Check Load
$loadavg=`/usr/bin/uptime`;
chomp $loadavg;
$loadavg =~ s/.*: //;
$loadavg =~ s/,//g;

$line1="load1 load5 load15";
$line2=$loadavg;

# Check Disks
@df=`df -k`;
for (@df) {
	$_ =~ /.*?(\d+)\%\s+(\/\S*)/;
	my $dsk = $2; my $per = $1;
	if( $dsk =~ /^\// && $dsk ne '/proc' && $dsk ne '/dev/shm' ) {
		$line1 .= " disk-$dsk";
		$line2 .= " $per";
	}
}

## Check process count
$numproc=`ps ax | wc -l`;
chomp $numproc;
$numproc =~ s/\s+//;
$line1 .= " numproc-total";
$line2 .= " $numproc";

## Check process count
$numproc=`ps auxww | awk '\$1 == "httpd" || \$1 == "apache" {print}' | grep -c /httpd`;
chomp $numproc;
$numproc =~ s/\s+//;
if( $numproc > 0 ) {
	$line1 .= " numproc-httpd";
	$line2 .= " $numproc";
}

## Check process count
#$numproc=`ps auxww | grep -c httpsd\$`;
#chomp $numproc;
#$numproc =~ s/\s+//;
#if( $numproc > 0 ) {
#	$line1 .= " numproc-httpsd";
#	$line2 .= " $numproc";
#}

## Check process count
$numproc=`ps auxww | awk '\$1 == "mysql" || \$1 == "#27" {print}' | grep -c /mysqld`;
chomp $numproc;
$numproc =~ s/\s+//;
if( $numproc > 0 ) {
	$line1 .= " numproc-mysqld";
	$line2 .= " $numproc";
}

## Sendmail count
$numsuccess=`grep -c 'sendmail.*Sent' /var/log/maillog`;
chomp $numsuccess;  $numsuccess =~ s/\s+//;
$numdeferral=`grep -c 'sendmail.*Deferred:' /var/log/maillog`;
chomp $numdeferral; $numdeferral =~ s/\s+//;
#$numfailure=`grep qmail:.\*delivery.\*failure: /var/log/maillog /usr/local/psa/var/log/maillog 2>/dev/null | wc -l`;
#chomp $numfailure; $numfailure =~ s/\s+//;
if( $numsuccess > 0 || $numdeferral > 0 ) {
	$line1 .= " sendmail-success sendmail-deferral";
	$line2 .= " $numsuccess $numdeferral";
}

$numimapd=`grep -c 'imapd.*Login user=' /var/log/maillog`;
chomp $numimapd; $numimapd =~ s/\s+//;
$numpop3d=`grep -c 'POP login by user' /var/log/maillog`;
chomp $numpop3d; $numpop3d =~ s/\s+//;
if( $numimapd > 0 || $numpop3d > 0 ) {
	$line1 .= " connect-imapd connect-pop3d";
	$line2 .= " $numimapd $numpop3d";
}

##@mems=`/sbin/sysctl -n hw.physmem hw.usermem vm.kvm_size vm.kvm_free`;
##foreach $n (0 .. @mems) { chomp $mems[$n]; }
##$line1 .= " memtotal meminuse vmtotal vminuse";
### Actually, vminuse = vmtotal - vmFREE ;)
##$mems[3] = $mems[2] - $mems[3];
##$line2 .= " $mems[0] $mems[1] $mems[2] $mems[3]";

#@mems=`/sbin/sysctl -n vm.stats.vm.v_page_size vm.stats.vm.v_free_count vm.stats.vm.v_wire_count vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count vm.stats.vm.v_cache_count`;
#foreach $n (0 .. @mems) { chomp $mems[$n]; }
#foreach $n (1 .. @mems) { $mems[$n] *= $mems[0]; }
#$line1 .= " mem_free mem_wire mem_active mem_inactive mem_cache";
#$line2 .= " $mems[1] $mems[2] $mems[3] $mems[4] $mems[5]";

# Print out lines
print $line1, "\n";
print $line2, "\n";
