Script wird nicht von cron 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.

Rider

Benutzer
Registriert
24. Sep. 2013
Beiträge
5
Reaktionspunkte
0
Punkte
0
Hallo,

bin sein einiger Zeit Besitzer einer gebrauchten 211er und probiere mich an Shell Scripten.
So sollen Fotos von der Webcam täglich umbenannt und verschoben werden. Da ich noch nie etwas mit Shell scripten gemacht hatte ist das alles ziemlich mühsam für mich. Aber es wird.. :)

Nun meine Frage: Das folgende Script wird nicht vom cron verarbeitet solange die 3 Zeilen mit dem echo Befehl auskommentiert sind.

Rich (BBCode):
#!/bin/sh
debugmode='no' # yes/no (mit Bildschirmausgabe)

			if [ $debugmode == "yes" ] ; then
#				echo "Dateidatum:" $DateiJahr $DateiMonat $DateiTag $wochentag
#				echo "Pfad:" $DateiPfad
#				echo mv "$F" NEU:"$DateiPfad/$G"
			fi

	echo "Cam copy script: Keine neuen Fotos" | /opt/bin/nail -s "$myDate: keine neuen Fotos" "USER@DOMAIN.XY"

	echo 2 >/dev/ttyS1 # kurzer Beep ausgeben

Mache ich die Kommentar-Rauten von den 3 Zeilen weg, dann wird das Script per cron ausgeführt.

Wäre sehr nett wenn mir jemand erklären könnte woran das liegt ?

Auch habe ich noch keine gute Man-Page gefunden welche auf die Synology Shell passt. Wenn dazu jemand einen Link hat, dann wäre ich sehr dankbar.
 
hm so auf die Schnelle sehe ich da eigentlich nichts. Was ich bei mir bei Stringvergleichen jedoch immer mache ist
Code:
if [ "$debugmode" == 'yes' ] ; then
Nur dass ich das richtig verstehe: das Script läuft auch nicht sauber wenn debug no ist solang die 3 Zeilen auskommentiert sind? Geht es denn wenn du die if- und die fi-Zeile auch auskommentierst?
Btw woher soll die Variable $myDate herkommen? Ich sehe nicht, dass die im Script definiert würde
 
Auch wenn debug no ist läufts nicht. Wenn man if und fi auskommentiert dann läufts. Wobei ich jetzt ne Fehlermeldung kommen habe. Habe bisher den Cron alle 5 Min. laufen und das Script nicht über die Konsole ausgeführt... sollte man mal machen... sorry.. bin halt noch Anfänger.

Fehler: line 8: syntax error: unexpected "fi"

Ok, das ist die Ursache für den Abbruch im Script.
Thx für die Hilfe.
 
Hab mir jetzt nicht alles angesehen - aber überleg doch mal, was übrigbleibt, wenn die ganzen Variablen nicht sitzen. Wo sollen die ganzen Werte eigentlich herkommen?
 
Ja, da bleibt nicht viel übrig.

Rich (BBCode):
#!/bin/sh
debugmode='no' # yes/no (mit Bildschirmausgabe)
if [ $debugmode == "yes" ] ; then
fi

Aber was ich halt nicht wusste ist das auf ein if nicht gleich ein fi folgen darf. Das war der Grund der Fehlermeldung bzw. warum das Script abgebrochen wurde.

Wenn noch jemand ein paar Links hat für nen Shell-Anfänger, wäre ich sehr dankbar. ;)
 
Du brauchst keine Links. Schau dir doch einfach mal die eingebauten Boot-Scripte in /etc (rc*) und /usr/syno/etc.defaults/rc.d mal an. Da kommt so ziemlich alles vor, was man normalerweise braucht.
 
Dankeschön Benares das ist sehr sehr geil.. *freu*
 
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