Cronjob wird nicht ausgeführt

Status
Für weitere Antworten geschlossen.

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
leider wird immer noch kein Messwert in die test.log geschrieben.

muss ich den Pfad /opt/bin in den PATH mit aufnehmen ?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.917
Punkte
488
Das kann ich dir nicht sagen. Nimm mal den Pfad mit auf, den dir "echo $PATH" nach der Anmeldung ausgibt.
Am PATH muss es aber nicht liegen, es kann auch jede andere Einstellung aus /etc/profile und ~/.profile sein.

Notfalls probier es mal mit
Code:
#!/bin/sh
. /etc/profile
. /root/.profile
/opt/bin/digitemp_DS2490 -a -o"%C" -q >/usr/local/bin/test.log 2>&1
Damit müsste digitemp dann wirklich die selben Settings vorfinden, wie bei interaktiver Anmeldung.
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
@Benares

habe alles so wie von dir geschrieben übernommen
crond 2 mal gestoppt und wieder gestartet aber immer noch keine Messwert übergabe.
Nur wenn ich "test.sh" in die KOnsole hämmere wird mir ein Messwert gespeichert.

Cron mag mich nicht.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.917
Punkte
488
Sorry, jetzt weiss ich auch nicht mehr weiter. Was steht denn in der test.log? Lebt wenigstens das Dateidatum im Minutentakt?
Bist du als admin oder als root angemeldet?
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
ja "test.log" wird im Minutentakt ; wie vom cronjob vorgesehen, aktualisiert.

Danke für deine Bemühungen.

Ich werde, glaub ich, für meine Temperaturmessung im Hause, auf die Rasberry Pi umsteigen, obwohl es ja viele gibt die das auch mit einer DS realisieren.
Nur meine DS210J mag das nicht tun, schade aber nicht zu ändern.

Mfg
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.165
Punkte für Reaktionen
414
Punkte
393
Hallo,
wie sieht Deine /root/.profile aus?

Gruß Götz
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Moin Götz

hier die /root/.profile

umask 022

#PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
#export PATH

#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
# stty erase
#fi

HOME=/root
export HOME

TERM=${TERM:-cons25}
export TERM

PAGER=more
export PAGER

PS1="`hostname`> "

alias dir="ls -al"
alias ll="ls -la"


wenn dir das was sagt währe das Klasse.

Mfg
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.165
Punkte für Reaktionen
414
Punkte
393
Hallo,
das sieht soweit gut aus. Wie sieht die /etc/profile aus?
Du kannst auch mal
sh -x <SCRIPT>
absetzen, da sieht man dann noch mehr.

Gruß Götz
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
und hier die /etc/profile

umask 022
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
PGDATA=/var/service/pgsql
export PGDATA
TERM=xterm
export TERM
PAGER=more
export PAGER
hostname
PS1=DiskStation210j>
alias dir=ls -al
alias ll=ls -la
ulimit -c unlimited
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
 
Zuletzt bearbeitet:

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Hallo
da bin ich mal wieder und der Kram läßt mir keine Ruhe.
Ich habe gerade die NAS an geschaltet, den von mir gebastelten cronjob gelöscht und einfach nur diesen eingetragen

*/1 * * * * roor digi.sh

das roor war ein Schreibfehler und den Pfad vor dem digi.sh hatte ich mit Absicht weggelassen.
Und man glaubt es kaum, es lief, cron startete jede MInute die Shell und digi.sh schrieb mir Messwerte in meine Datei, als ob es kein Morgen gibt.

Ich dann den Schreibfehler roor in root korrigiert, die Pfade richtig gesetzt, nicht ging keine Messwerte wurden geschrieben.
Dann wieder alles in den Erstzustand, aber leider geht nun auch nicht´s mehr.
NAS wieder resetet leider kann ich den funktionierenden Zustand nicht wieder herstellen.

Stecken da kleine Chinesen in der NAS und lachen sich jetzt tot über mich ?
 

Puppetmaster

Benutzer
Sehr erfahren
Mitglied seit
03. Feb 2012
Beiträge
18.991
Punkte für Reaktionen
629
Punkte
484
test=$(/opt/bin/digitemp_DS2490 -a -o"%C" -q)

echo $test > /usr/local/bin/test.log

Was mich ja wundert ist, dass das bei dir überhaupt mal lief. Denn 'test' ist m.W. ein reserviertes Wort und du solltest deine Variable besser nicht so nennen.
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
@Puppetmaster
Danke für den Hinweis, ist leider so eine Marotte von mir irgendwie heist alles zum probieren Test.
Ich ändere das gleich mal

Eine Frage hätte ich noch.

Wenn ich Daten aus einer Datei in eine Variable schreiben möchte wie stelle ich das an

Ich habe es mal so versucht.

#/bin/sh

Daten=$(/usr/local/bin/benny1.txt)

$Daten > /usr/local/bin/benny.txt

ich möchte also die Daten aus der Datei benny nach benny1 schreiben und das über ein Variable die Daten heist.

Geht das irgendwie so ?

Immer noch tschuldigung für meine Linux Kenntnisse ich bin nochin der Findungsphase
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.917
Punkte
488
Probier mal
Code:
Daten=/usr/local/bin/benny1.txt
$Daten > /usr/local/bin/benny.txt
benny1.txt muss aber ausführbar sein (755)
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Danke
aber geht nicht

wenn ich

$Daten > /usr/local/bin/benny.txt

mit 2>&1 Fehlerauslese, bekomme ich folgendes


das steht in benny1

/usr/local/bin/benny.txt: line 1: 22.375000: command not found

Das steht in benny.txt

22.375000

Diesen Wert möchte ich einfach nur über die Variable "daten" in "benny1.txt" kopieren.

Der Wert der in "benny.txt" steht wird im Minutentakt aktualisiert.


Hier nun mal meine Shell( ich habe das alles noch mal neu gemacht)

#!/opt/bin/bash

/opt/bin/digitemp_DS2490 -a -o"%C" -q -l/volume1/temperatur/benny.txt
daten=/volume1/temperatur/benny.txt
$daten > /volume1/temperatur/benny1.txt 2>&1

von digitemp wird ein Temperaturwert in benny.txt geschrieben
der soll in die Variable "daten" und von da aus in "benny1.txt.

Dabei bekomme ich dann in "benny1.txt" folgende Fehlermeldung

/volume1/temperatur/benny.txt: line 1: 22.375000: command not found
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.917
Punkte
488
Du machst es aber kompliziert.
Code:
/opt/bin/digitemp_DS2490 -a -o"%C" -q -l/volume1/temperatur/benny.txt
daten=$(cat /volume1/temperatur/benny.txt)
echo  $daten > /volume1/temperatur/benny1.txt
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
@Benares

genau so sieht mein Shellscript nu aus

Nur du schüttelst das aus der Tastatur und ich suche seit Stunden im I-Net rum, aber learning bei doing.

Danke nochmal´s für deine Bemühungen und ich habe bestimmt die TAge noch die ein oder andere Frage.

Mfg
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.102
Punkte für Reaktionen
3.917
Punkte
488
Du musst dir eigentlich nur klarmachen, wie man mit Variablen arbeitet:
1.) irgendwas=irgendwasanderes setzt Variable irgendwas auf irgendwasanderes
2.) irgendwas=$(irgendwasanderes) führt irgendwasanderes aus und weisst die Ausgabe der Variablen irgendwas zu
3.) $irgendwas ist immer der aktuelle Wert der Variablen irgendwas
Das ist alles

hier noch ein Beispiel
Code:
LS="ls -als /tmp"
$LS
XX=$($LS)
echo $XX
 

feuerwehr

Benutzer
Mitglied seit
17. Jan 2014
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Das leg ich mir mal unters Kopfkissen

Bedank
 
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