#! /usr/local/bin/perl $ENV{'PATH'}="/usr/bin:/usr/local/bin"; $STATSCACHE="/tmp/netapp2mrtg.cache"; dbmopen( %STATSCACHE, "$STATSCACHE", 0666 ) || die("Can't open $STATSCACHE: $!\n"); #enterprises.789.1.2.1.2.0 = Timeticks: (318778496) 36 days, 21:29:44 $HOSTNAME=$ARGV[0]; # CPU UpTime open( BUSYSTATS, "snmpget $HOSTNAME fu7677 .1.3.6.1.4.1.789.1.2.1.1.0 |" ); chomp($NEW_CPU_UPTIME=); $NEW_CPU_UPTIME =~ s/^.*\(//g; $NEW_CPU_UPTIME =~ s/\).*$//g; close( BUSYSTATS ); # CPU BusyTime open( BUSYSTATS, "snmpget $HOSTNAME fu7677 .1.3.6.1.4.1.789.1.2.1.2.0 |" ); chomp($NEW_CPU_BUSY=); $NEW_CPU_BUSY =~ s/^.*\(//g; $NEW_CPU_BUSY =~ s/\).*$//g; close( BUSYSTATS ); # CPU IdleTime open( BUSYSTATS, "snmpget $HOSTNAME fu7677 .1.3.6.1.4.1.789.1.2.1.4.0 |" ); chomp($NEW_CPU_IDLE=); $NEW_CPU_IDLE =~ s/^.*\(//g; $NEW_CPU_IDLE =~ s/\).*$//g; close( BUSYSTATS ); # percent_cpu = (int)((100 * diff_total_cpu) / (diff_total_cpu + diff_total_idle) ); if( defined( $STATSCACHE{$HOSTNAME} ) ) { ($OLD_CPU_UPTIME, $OLD_CPU_BUSY, $OLD_CPU_IDLE) = split("\t",$STATSCACHE{$HOSTNAME}); $STATSCACHE{$HOSTNAME}="$NEW_CPU_UPTIME\t$NEW_CPU_BUSY\t$NEW_CPU_IDLE"; $PERCENT_CPU_BUSY = int((100 * ($NEW_CPU_BUSY - $OLD_CPU_BUSY)) / ($NEW_CPU_UPTIME - $OLD_CPU_UPTIME)); $PERCENT_CPU_IDLE = int((100 * ($NEW_CPU_IDLE - $OLD_CPU_IDLE)) / ($NEW_CPU_UPTIME - $OLD_CPU_UPTIME)); } else { $STATSCACHE{$HOSTNAME}="$NEW_CPU_UPTIME\t$NEW_CPU_BUSY\t$NEW_CPU_IDLE"; $OLD_CPU_UPTIME = $NEW_CPU_UPTIME; $OLD_CPU_BUSY = $NEW_CPU_BUSY; $PERCENT_CPU_BUSY = int((100 * $NEW_CPU_BUSY) / $NEW_CPU_UPTIME); $PERCENT_CPU_IDLE = int((100 * $NEW_CPU_IDLE) / $NEW_CPU_UPTIME); } dbmclose( %STATSCACHE ); #print( "OLD_CPU_UPTIME: $OLD_CPU_UPTIME\n" ); #print( "NEW_CPU_UPTIME: $NEW_CPU_UPTIME\n" ); #print( "OLD_CPU_BUSY: $OLD_CPU_BUSY\n" ); #print( "NEW_CPU_BUSY: $NEW_CPU_BUSY\n" ); #print( "PERCENT_CPU: $PERCENT_CPU\n"); #print( "PERCENT_CPU: $PERCENT_CPU\n"); print("$PERCENT_CPU_BUSY\n"); print("$PERCENT_CPU_IDLE\n"); print("foo\n"); print("$HOSTNAME\n");