NEWS
Memory auslesen mittels Skript / Crontab
-
Hallo,
zusätzlich angeregt von dem Auslesen der Temperaturen der CPU's wollte ich auch andere Daten auslesen.
Hier jetzt das Auslesen von den Memory Angaben (eines anderen entfernten Rechners), die man über "free -m" bekommt !
Anlegen der Datenpunkte im IoBroker (entsprechend des Pfades wo man sie haben möchte und ggf. Namen ändern - Datei bitte als xyz.json abspeichern:
{ "javascript.0.Systeminfos.NUC.Mem_total": { "_id": "javascript.0.Systeminfos.NUC.Mem_total", "type": "state", "common": { "name": "Mem_total", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Mem_used": { "_id": "javascript.0.Systeminfos.NUC.Mem_used", "type": "state", "common": { "name": "Mem_used", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Mem_free": { "_id": "javascript.0.Systeminfos.NUC.Mem_free", "type": "state", "common": { "name": "Mem_free", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Mem_shared": { "_id": "javascript.0.Systeminfos.NUC.Mem_shared", "type": "state", "common": { "name": "Mem_shared", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Mem_cache": { "_id": "javascript.0.Systeminfos.NUC.Mem_cache", "type": "state", "common": { "name": "Mem_cache", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Mem_available": { "_id": "javascript.0.Systeminfos.NUC.Mem_available", "type": "state", "common": { "name": "Mem_available", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Swap_total": { "_id": "javascript.0.Systeminfos.NUC.Swap_total", "type": "state", "common": { "name": "Swap_total", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Swap_used": { "_id": "javascript.0.Systeminfos.NUC.Swap_used", "type": "state", "common": { "name": "Swap_used", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } }, "javascript.0.Systeminfos.NUC.Swap_free": { "_id": "javascript.0.Systeminfos.NUC.Swap_free", "type": "state", "common": { "name": "Swap_free", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "MB", "min": 0, "max": 1000000, "def": 0, "read": true, "write": true }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1594292266748, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } } }
Auf dem entfernten Rechner unter Debian dann ein Skript anlegen - am besten unter /usr/local/bin und per chmod -x ausführbar machen:
#!/bin/bash ioBroker-Datenpunkt #ioBroker-Datenpunkte für Memory Mem01=javascript.0.Systeminfos.NUC.Mem_total Mem02=javascript.0.Systeminfos.NUC.Mem_used Mem03=javascript.0.Systeminfos.NUC.Mem_free Mem04=javascript.0.Systeminfos.NUC.Mem_shared Mem05=javascript.0.Systeminfos.NUC.Mem_cache Mem06=javascript.0.Systeminfos.NUC.Mem_available Swap01=javascript.0.Systeminfos.NUC.Swap_total Swap02=javascript.0.Systeminfos.NUC.Swap_used Swap03=javascript.0.Systeminfos.NUC.Swap_free #ioBroker-IP:Port IPP=192.168.40.7:8087 #Ziel-IP von ioBroker und Port von Simple-API #Abfrage Total Memory SQL=$(free -m | awk 'NR==2{print $2}') curl http://${IPP}/set/${Mem01}?value=${SQL} #Abfrage Used Memory SQL=$(free -m | awk 'NR==2{print $3}') curl http://${IPP}/set/${Mem02}?value=${SQL} #Abfrage Freier Memory SQL=$(free -m | awk 'NR==2{print $4}') curl http://${IPP}/set/${Mem03}?value=${SQL} #Abfrage Shared Memory SQL=$(free -m | awk 'NR==2{print $5}') curl http://${IPP}/set/${Mem04}?value=${SQL} #Abfrage Cached Memory SQL=$(free -m | awk 'NR==2{print $6}') curl http://${IPP}/set/${Mem05}?value=${SQL} #Abfrage verfügbarer Memory SQL=$(free -m | awk 'NR==2{print $7}') curl http://${IPP}/set/${Mem06}?value=${SQL} #Abfrage Total Swap SQL=$(free -m | awk 'NR==3{print $2}') curl http://${IPP}/set/${Swap01}?value=${SQL} #Abfrage Used Swap SQL=$(free -m | awk 'NR==3{print $3}') curl http://${IPP}/set/${Swap02}?value=${SQL} #Abfrage Freier Swap SQL=$(free -m | awk 'NR==3{print $4}') curl http://${IPP}/set/${Swap03}?value=${SQL}
FERTIG Bei Fragen bitte melden!
-
Wen es noch interessiert - hier mein Grafana Board dafür - erstmal für einen Rechner:
-
@Segway als Anmerkung, es gibt auch den Adapter Linux Control um Daten auszulesen oder auch zu steuern
-
Und warum erfahre ich das erst jetzt ? harhar
Aber ich glaube der kann nicht alles oder ? wie zB Temp ? -
@Segway alles was du abfragen möchtest, kannst du unter eigene Befehle anlegen, lediglich werden nicht alle Systeme unterstützt, aber näheres im Thread.
Hab mich selbst noch nicht so sehr damit auseinander gesetzt. -
@crunchip
Tsss krass ... eigentlich genau das was ich gesucht habe.
Und ganz hinten kann ich auch eigene Befehle implementieren. Werde es probieren - genial