DS 210j Datenübernahme durch Bash Script

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

feuerwehr

Benutzer
Registriert
17. Jan. 2014
Beiträge
40
Reaktionspunkte
0
Punkte
0
N´abend zusammen

Wie ich in einem anderen Thread mein Problem mit der USB Serial Adapter erkennung hatte und dieses durch einsatz eines USB 1Wire Adapter gelöst habe, habe nu ein Problem mit dem LInux von der DS 210J

Ich möchte gerne mit einem Bash Script Daten in eine RRD Datenbank übergeben.

Mein Scribt sieht wie folgt aus.

#/bash/sh

temp=`digitemp_DS2490 -a -o"%C" -q`
rrdtool update temperatur.rrd N:$temp

um das alles automatisch laufen zu lassen habe ich in cron folgendes eingetragen

*/1 * * * * /etc/temp.sh

wobei temp.sh der Name der vorherigen Shell Datei ist.

cron arbeitet die crontab einwandfrei ab, aber es werden keine von digitemp gemessenen Daten von RRD übernommen.
Starte ich Die temp.sh per Hand werden auch Messwerte in die RRD geschrieben.

liegt da irgendwo ein Prob in der Shell ?
 
Wie immer: Vollständige Pfade in Skripten verwenden.

Außerdem: /etc ist gewiss nicht der geeignete Ort für Skripte. Nimm mal lieber /urs/local/bin.
 
Hallo,
hast Du bereits bash per ipkg installiert?
Ohne ipkg bash
#!/bin/sh
oder mit ipkg bash
#!/opt/bin/bash

Gruß Götz
 
Ich mach mal Fußball Pause
da ich vor lauter /usr/local/bin usw nichts mehr sehe

Danke für die Tipps bisher

melde mich wieder
 
Hallo da bin ich wieder,

ich habe meine Shell jetzt dem entsprechend umgewandelt.

#!/opt/bin/bash


temp="`/opt/bin/digitemp_DS2490 -a -sUSB -o"%C" -q`"
/opt/bin/rrdtool update /usr/local/bin/temperatur.rrd N:$temp

Geht natürlich immer noch nicht, warum weis ich nicht.

Wenn ich die shell, die temp.sh heißt, manuell ausführe übernimmt RRDtoll die Messdaten ohne Probleme, nur wenn ich die shell mit cron laufen lassen erscheint kein Messwert.

Eigentlich dürfte es RRDtool doch egal sein ob ich den Messvorgang durch das manuelle starten der shell initiiere oder cron das für mich macht.
Die shell wird ausgeführt, was ich am Timestamp im RRDtool sehen kann.

hier noch mein crontab Eintrag
*/1 * * * * root /usr/local/bin/temp.sh

ich währe da über jeden Tipp dankbar.

Ich habe seit heute morgen verschieden shell Dateien gebastelt.

Ganz simple um nur mal das Datum in eine Datei zu schreiben, funktioniert mit cron und manuell
Dann eine um die Temperatur von digitemp in eine Datei zu schreiben , funktioniert nur wenn ich die Shell manuel starte nicht mit cron.
Wo liegt der "verdammte" Unterschied zwischen dem manuellen starten einer shell und dem mit cron.
Ich habe zig mal auf die Befehlstruktur geschaut, die sieht sowas von gleich aus ich kenne jeden Pixel mit Vornamen.
Was ist da nur anders

Bitte Hilfe sonst hängt die NAS heute abend im Fischteich und ich lieg da neben.
 
Zuletzt bearbeitet:
Hallo,
ist /opt/bin/digitemp_DS2490 ein compiliertes Programm oder ein Script?

Gruß Götz
 
Ein Programm welches ich auch mit den in der shell eingefügten Attributen direkt auf dem TErminal starten kann
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat