1
0

check_ups_exttemp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/perl
  2. use strict;
  3. use Net::SNMP;
  4. exit if (!$ARGV[0]);
  5. my $TIMEOUT = 30;
  6. $SIG{ALRM} = sub { print "ERROR: No response\n"; exit 3; };
  7. alarm($TIMEOUT);
  8. my $hostip=$ARGV[0];
  9. my ($session, $error) = Net::SNMP->session(
  10. -hostname => shift || $hostip,
  11. -community => shift || 'public',
  12. -timeout => 5,
  13. -port => shift || 161
  14. );
  15. if (!defined($session)) {
  16. printf("ERROR: %s.\n", $error);
  17. exit 1;
  18. }
  19. my $exttemp = '1.3.6.1.4.1.318.1.1.10.2.3.2.1.4.1';
  20. my $result = $session->get_request(
  21. -varbindlist => [$exttemp]
  22. );
  23. if (!defined($result)) {
  24. ($session, $error) = Net::SNMP->session( -hostname => $hostip, -community => 'public' );
  25. $result = $session->get_request( -varbindlist => [$exttemp] );
  26. }
  27. if (!defined($result)) {
  28. printf("ERROR: %s.\n", $session->error);
  29. $session->close;
  30. exit 2;
  31. }
  32. if ($result->{$exttemp} > 28) {
  33. printf("ERROR Temperature of server-room: %s Degrees\n",$result->{$exttemp});
  34. $session->close;
  35. exit 2;
  36. }
  37. printf("OK Temperature of server-room %s Degrees\n", $result->{$exttemp});
  38. $session->close;
  39. exit 0;