knorkator
Goto Top

Smartmontools - Aufruf per Kommandozeile - Übergabe an Zabbix

Hallo zusammen,

ich möchte Smartmontools nutzen um SMART Werte an Zabbix zu übermitteln.
Es gibt dafür fertige Templates/Anleitungen welche die benötigen Parameter mitbringen.

Auszug aus: https://github.com/v-zhuravlev/zbx-smartctl
UserParameter=uHDD[*], for /F "tokens=10" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -A $1 ^| find "$2"') do @echo %a  
UserParameter=uHDD.health.[*], for /F "tokens=6" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -H $1 ^| find "test"') do @echo %a  
UserParameter=uHDD.model.[*],for /F "tokens=3*" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Device Model"') do @echo %a %b  
UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -i $1 ^| find "Serial Number"') do @echo %a  
UserParameter=uHDD.errorlog.[*], for /F "tokens=4" %a in ('C:\usr\zabbix\smartmontools\bin\smartctl.exe -l error $1 ^| find "ATA Error Count"') do @echo %a  

Wenn ich die Smartmontools im o.a. Ordner hinterlege, funktioniert der Aufruf über Zabbix_get.

Hat jemand einen Tipp, wie die Parameter umgeschrieben werden müssten, wenn smartctl in c:\Program Files\Smartmontools\bin liegt?
Das mit dem Leerzeichen kriege ich nicht auf die Reihe..

Fehlermeldung:
zabbix@zabbix:~# zabbix_get -s 192.168.100.156 -k "uHDD[/dev/hda,Power_on]" 
Der Befehl "C:\Program" ist entweder falsch geschrieben oder  

Vielen Dank!

Content-Key: 332008

Url: https://administrator.de/contentid/332008

Printed on: April 19, 2024 at 17:04 o'clock

Member: Franz-Josef-II
Franz-Josef-II Mar 13, 2017 updated at 09:55:03 (UTC)
Goto Top
Servas

- Pfadangabe mit Anführungszeichen oder
- Systemvariable (%programfiles% zeigt auf C:\Programme) oder
- Deutsche Bezeichnung: C:\Programme
Member: Knorkator
Knorkator Mar 13, 2017 updated at 10:31:31 (UTC)
Goto Top
Moin,

also das mit den Anführungszeichen habe ich selbstverständlich auch schon probiert..
Aber scheinbar nicht an der richtigen Position:

a) Anführungszeichen zwischen ' und C:\Pr sowie nach smartctl.exe
UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in (' "c:\Program Files\Smartmontools\bin\smartctl.exe" **-i $1 ^| find "Serial Number"') do @echo %a
zabbix@zabbix:~# zabbix_get -s 192.168.100.156 -k "uHDD.sn.[/dev/hdb]" 
Der Befehl "C:\Program" ist entweder falsch geschrieben oder  
konnte nicht gefunden werden.

b) Einfügen von %Programfiles%
UserParameter=uHDD.sn.[*],for /F "tokens=3" %a in ('%programfiles%\Smartmontools\bin\smartctl.exe -i $1 ^| find "Serial Number"') do @echo %a
zabbix@zabbix:~# zabbix_get -s 192.168.100.156 -k "uHDD.sn.[/dev/hdb]" 
Der Befehl "C:\Program" ist entweder falsch geschrieben oder  
konnte nicht gefunden werden.
Member: Franz-Josef-II
Solution Franz-Josef-II Mar 13, 2017 at 13:23:41 (UTC)
Goto Top
Um welches System handelt es sich eigentlich? Würde die deutsche Bezeichnung des Programmordner funktionieren?
Member: Knorkator
Knorkator Mar 13, 2017 at 13:39:28 (UTC)
Goto Top
Es handelt sich um ein Windows8.1 System.

Mit C:\Programme\Smartmontools\bin\smartctl.exe funktioniert es!
Ist ja auch kein Leerzeichen enthalten...

Auf die Idee bin ich nicht gekommen, für mich ist das immer c:\Program Files\...

Vielen Dank für den Tipp!