Script wir mit Cronjob nicht richtig ausgeführt

  • 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.

63siggi

Benutzer
Registriert
26. Dez. 2010
Beiträge
2
Reaktionspunkte
0
Punkte
0
Hallo zusammen,

ich habe ein Problem mit einem Shell Scribt, welches mir Messdaten berechnet und das Ergebniss dann in eine Datei speichert.
Führe ich das Script über ein Terminal aus funktioniert es einwandfrei nur wenn es über die Crontab gestartet wird geht es nicht.
Der Cronjob wird zwar gestartet die Datei auch geschrieben, allerdings ohne Inhalt.

Hier mal die Bash Datei

Rich (BBCode):
#!/bin/sh

aktuell=$(cat /volume1/web/messdaten/strom.txt)                                 
alt=$(cat /volume1/web/messdaten/sensor/strom/b.txt)                        
unterschied=`echo "scale=2; $aktuell - $alt" | bc`                               

echo "$unterschied" > /volume1/web/messdaten/sensor/strom/tagesverbrauch.txt

Was ich damit mache:
Variable aktuell mit Messwert füllen
Variable alt mit Messwert füllen
unterschied wird mit BC berechnet
Inhalt von Variable unterschied in Datei schreiben

Wie geschrieben wenn ich das "manuell" starte funktioniert es einwandfrei, nur beom cronjob schreibt er zwar die Datei "tagesverbrauch.txt" aber ohne Inhalt.
Bis vor kurzem funktionierte es noch.

Jemand einen Tipp ?
 
Versuche es einmal damit, dass Du zu Beginn des Skripts eine PATH-Variable setzt - z.B.

Rich (BBCode):
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin

aktuell=$(cat /volume1/web/messdaten/strom.txt)                                 
alt=$(cat /volume1/web/messdaten/sensor/strom/b.txt)                        
unterschied=`echo "scale=2; $aktuell - $alt" | bc`                               

echo "$unterschied" > /volume1/web/messdaten/sensor/strom/tagesverbrauch.txt
 
Vielen Dank
funktioniert
Merkwürdig das es vorher auch ohne diesen Eintrag funktionierte obwohl ich nichts verändert habe.
Egal hauptsache funzt
 
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