#!/usr/bin/perl # ICS 243d - Internet Technology # Spring Quarter 2001 # Roberto Silveira Silva Filho ID# 85849631 # Administration data collector - Server side. # Final project # # ---------------------------------------------------------- local $/=CRLF; # Removes the white spaces before and after a string sub alltrim { $parameter = shift; $parameter =~ s/^\s*//; # ltrim $parameter =~ s/\s*$//; # rtrim return $parameter } my @output; $output = `/usr/bin/vmstat 1 5`; #Collects the information for 5 seconds #print $output; # Get the lines of the output in the array... @outputArray = split("\n", $output); #print @outputArray."\n"; my @properties; # Array containing the properties print ''."\n" ; print "
\n"; print '
'."\n"; print ' '."\n"; print ' '."\n"; print ' '."\n"; print " \n"; my $i=0; my @properties; foreach $line (@outputArray) { # substitute "is" followed by more than 2 spaces, by tab. $outputArray[$i] =~ s/\s+/ /g; # replaces 1 or more spaces by 1 globally @properties; #print $outputArray[$i]."\n"; # does not consider the first 3 lines of the output if ($i >2 ) { @splittedArray = split(/ /,$outputArray[$i]); #for ($j=0; $j<25; $j++) { # print "\n $j: $splittedArray[$j] \n"; #} $properties[$i-3,0]=$splittedArray[4]; #free page $properties[$i-3,1]=$splittedArray[5]; #free disk $properties[$i-3,2]=$splittedArray[22]; #cpu load #print $properties[$i-3,0]."\n"; #print $properties[$i-3,1]."\n"; #print $properties[$i-3,2]."\n"; } $i++; } $i=$i-3; #print "i= $i \n"; my $j; my $page; my $disk; my $load; for ($j=0; $j<$i; $j++) { #print $j."\n"; $page = $page + $properties[$j,0]; $disk = $disk + $properties[$j,1]; $load = $load + $properties[$j,2]; #print " page: $page" ; #print " disk: $disk" ; #print " load: $load" ; } #print "i= $i \n"; #print " "; #print " "; #print " "; #print " "; #print " \n"; # Calculate the average... $page = $page / $i; $disk = $disk / $i; $load = $load / $i; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); print " "; print " "; print " "; print " "; print " "; print " \n"; print "

Time

Disk Swapp

Disk Free

CPU Idle

$page $disk $load
$hour:$min:$sec $page $disk $load
\n";