Jump to content

Schleife für SNMP-Abfrage


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hi alle,

ich habe mehrere IP-Steckdosenleisten, deren Werte ich per SNMP einsammeln möchte. Ich möchte also per Batchfile die Werte in eine CSV schreiben lassen. Das funktioniert soweit auch, aber ich bekomme die Schleife nicht zum Laufen. Hier die Details zu den Dateien:

 Eine Datei namens liste.txt enthält die IP-Adressen der Steckdosenleisten. hier der Inhalt meiner Batchdatei:

for /f "tokens=1,* delims==" %%i in (liste.txt) do (
	for /f "tokens=*" %%a in ('snmpget -v1 -Ov -c public %%i system.sysName.0') do set SYSTEMNAME=%%a
	for /f "tokens=*" %%a in ('snmpget -v1 -Ov -c public %%i system.sysLocation.0') do set SYSLOCATION=%%a
	for /f "tokens=*" %%a in ('snmpget -v1 -Ov -c public %%i .1.3.6.1.4.1.2606.7.3.2.8.0') do set AUSLESEDATUM=%%a
	for /f "tokens=*" %%a in ('snmpget -v1 -Ov -c public %%i .1.3.6.1.4.1.2606.7.3.2.9.0') do set AUSLESEUHRZEIT=%%a
	for /f "tokens=*" %%a in ('snmpget -v1 -Ov -c public %%i .1.3.6.1.4.1.2606.7.4.2.2.1.10.1.20') do set ZAEHLERSTAND=%%a
	
		echo IP: %%i  	
		echo Systemname: %SYSTEMNAME%
		echo Location: %SYSLOCATION%
		echo Auslesedatum: %AUSLESEDATUM%
		echo Ausleseuhrzeit: %AUSLESEUHRZEIT%
		echo Stromverbrauch: %ZAEHLERSTAND%
   )

 

An sich funktioniert die Schleife, nur die SNMP-Werte werden nicht mehr in die Variablen geschrieben. Der einzelne Befehl zur SNMP-Abfrage ist auch ok. Woran kann das liegen?

 

Gruß André

 

Link zu diesem Kommentar

Dürfte es auch Powershell sein?

Get-Content -Path 'liste.txt' |
    ForEach-Object -Process {
        [PSCustomObject]@{
            SYSTEMNAME = & "snmpget -v1 -Ov -c public $_ system.sysName.0"
            SYSLOCATION = & "snmpget -v1 -Ov -c public $_ system.sysLocation.0"
            AUSLESEDATUM = & "snmpget -v1 -Ov -c public $_ .1.3.6.1.4.1.2606.7.3.2.8.0"
            AUSLESEUHRZEIT = & "snmpget -v1 -Ov -c public $_ .1.3.6.1.4.1.2606.7.3.2.9.0"
            ZAEHLERSTAND = & "snmpget -v1 -Ov -c public $_ .1.3.6.1.4.1.2606.7.4.2.2.1.10.1.20"
        }
    } | 
        Export-Csv -Path 'Output.csv' -Encoding UTF8 -Delimiter ';' -NoTypeInformation

Vielleicht müsstest Du noch an den SNMP-Kommandos feilen und vielleicht die Pfade bei den Dateinamen ergänzen, aber der Rest sollte laufen.  ;-)

Link zu diesem Kommentar

Hallo BOfH_666,

vielen Dank für deine Unterstützung. Mit PS habe ich noch nie gearbeitet. Ich weiß, wie man sie startet, aber der Versuch dein Skript zu starten, war erfolglos. :-(

Letzte Woche habe ich mich selber mal in der PS versucht, aber wenn ich die Fehlermeldungen richtig interpretiert habe, fehlt mit ein SNMP-Modul. Vielleicht sollte ich noch dazu sagen, dass ich keine Adminrechte habe. ich muss also mit dem arbeiten, was mir zur Verfügung gestellt wird. cmd und NetSNMP sind da zum Glück dabei. Viel mehr aber auch nicht.

Jemand der mir mit cmd helfen könnte mein Vorhaben zu realisieren scheint es dann wohl nicht zu geben?

Gruß André

Link zu diesem Kommentar
vor 3 Stunden schrieb andrehamburg:

... aber der Versuch dein Skript zu starten, war erfolglos. :-(  ....

hmmm ... wie äußert sich denn das? An fehlenden Rechten kann es eher nicht liegen. Was Du mit cmd/batch machen kannst, kannst Du auch Powershell machen. Und die Tools, die Du in cmd/batch ausrufen kannst, kannst Du auch in der Powershell aufrufen (snmpget z.B.) Und die Syntax von Powershell ist, jedenfalls denke ich das, deutlich intuitiver und weniger kryptisch als cmd/batch.

Link zu diesem Kommentar

OK ... da muss ich dann leider passen, mit cmd/batch bin ich nie richtig warm geworden und werde auch jetzt nicht mehr damit anfangen. ;-)  Sorry.

Ich glaube aber trotzdem dass es sich unbedingt für Dich lohnen würde. Wenn Du nicht grad vor der Rente stehst und noch ne Weile in Windows-Umgebungen unterwegs sein willst, kommt man bei komplexeren Sachen an Powershell nicht mehr vorbei. Und falls Du's beruflich brauchst, hast Du bei der nächsten Gehaltsverhandlung noch ein Pfeil mehr im Köcher.  ;-):D

Und mit Powershell findet man nach meiner Erfahrung auch schneller Hilfe.

Link zu diesem Kommentar

Schade. Scheinbar bin ich der Einzige, der noch in der cmd rumhühnert. Im November habe ich einen Powershell-Einsteigerkurs bekommen. Mal sehen, was der bringt. Ich bin aber nur sporadisch so intensiv am skripten. Alle paar Monate bis Jahre gibt's mal was, was ich skripten kann. Daher werde ich sowas auch nie beherrschen, aber dank diverser Foren und Internetseiten finde ich immer ewas, was ich mir zurechtfriemeln kann.

Schauen wir mal.

Gruß André

Link zu diesem Kommentar

Powershell is halt die modernere und eben auch bessere Technologie. Es laufen ja auch nur noch relativ wenige Leute mit "dummen" Mobiltelefonen durch die Gegend. Selbst Leute, die's nciht brauchen, haben heute meistens ein Smartphone.  ;-)

Wenn Du am Wochenende mal ein bissl Langeweile hast (oder auch auf Arbeit ;-) ), kannst Du Dich kostenlos in der  Microsoft Virtual Academy mit Getting Started with Powershell ein bissl berieseln lassen. Das sollte Dir für die ersten Schritte schon das Rüstzeug verschaffen.

bearbeitet von BOfH_666
Link zu diesem Kommentar

Langeweile? Was ist das? Dieses Wort existiert bei mir schon viele Jahre nicht mehr. Ich habe für mich auch beschlossen, dass das Sitzen am PC Zeitverschwendung ist. Ich bin lieber in der Realität unterwegs. Das gibt mir mehr. Zu Hause mache ich nur noch das Nötigste am PC. Bin vom Bastler zum reinen Anwender mutiert. Daher warte ich auch den Kurs im November ab. Der ist dienstlich veranlasst und findet während der Arbeitszeit statt. So lasse ich mir das gerne gefallen. :-)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...