Thread SNMP Walk
(9 answers)
Opened by draekster at 2009-05-28 14:39
halso haben tu ich bis jez das
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 #! /usr/local/bin/perl use strict; use Net::SNMP; #SNMP verwenden ################################################################################################################################################ do { ################################################################################################################################################ open(IP, "<ip.txt"); while(<IP>) { chomp($_); #Zeilenumbruch verschwindibus #sonst wird die Ausgabe Verschoben ################################################################################################################################################ my ($session, $error) = Net::SNMP->session( #Sitzung starten -hostname => shift || $_, #IP zum Gerät #kann auch Internetadresse sein -community => shift || '*****', -port => shift || 161 ); ################################################################################################################################################ if (!defined($session)) #Prüfung ob die Sitzung funktioniert { printf("ERROR: %s.\n", $error); exit 1; } ################################################################################################################################################ my $OID = '.1.3.6.1.2.1.1.2.0'; #Variable OID #OID zur Hersteller OID my $Name = '.1.3.6.1.2.1.1.5.0'; #Variable Name #OID zum Gerätename my $Loc = '.1.3.6.1.2.1.1.6.0'; #Variable Loc #OID zum Standort my $result = $session->get_request ( -varbindlist => [$OID, $Name, $Loc] ); if (!defined($result)) { printf("ERROR: %s.\n", $session->error); $session->close; exit 1; } ################################################################################################################################################ open (file, ">>ausgabe.txt"); #öffnet Datei zum speichern ################################################################################################################################################ printf ( "Standort: %s\nIP: %s\tGeraetename: %s\tOID: %s\nTemperatur: %s\tLuftfeuchte: %s\n\n", #Ausgabe der Hersteller OID $result->{$Loc}, $session->hostname, $result->{$Name}, $result->{$OID} ); printf file ( "Standort: %s\nIP: %s\tGeraetename: %s\tOID: %s\nTemperatur: %s\tLuftfeuchte: %s\n\n", #speichern in die Datei $result->{$Loc}, $session->hostname, $result->{$Name}, $result->{$OID} ); ################################################################################################################################################ $session->close; ################################################################################################################################################ } close(IP); ################################################################################################################################################ print file ( "----------------------------------------------------------------------\n\n" ); close (file); #schließen der Ausgabe Datei ################################################################################################################################################ print "----------------------------------------------------------------------\n\n"; sleep(5); ################################################################################################################################################ } while(0<1); ################################################################################################################################################ exit 0; die 3 ersten OID's sollen so bleiben da die ja eh überall fest sind aber die für die Temperatur und die Luftfeuchte müssen "gewalk werden" da ich sonst für jeden Server die OID's heraussuchen müssete |