Skriptbefehle nach Update auf DSM 6 plötzlich fehlerhaft. Warum nur ?

Status
Für weitere Antworten geschlossen.

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Hi,

ich update gerade so nach und nach meine vorhandenen DS auf DSM 6. Dabei tritt nun folgendes Problem auf :

Bislang lasse ich eine Sicherung mittels selbst erstellter Skripte von meiner DS3615 auf meine DS415 machen. Skript lief unter DSM5.2 auch fehlerfrei durch.

Nach dem Update auf DSM 6 bekomme ich für einige Zeilen im Skript plötzlich Fehler ausgegeben, obwohl diese unter DSM 5.2 perfekt funktioniert haben. Leider weiß ich nicht, wie ich den Fehler behebe bzw. wo der Syntaxfehler im Skript ist.

Folgende 4 Fehler erhalten ich : (Befehlszeile steht oben, die Fehlermeldung darunter)

Befehl : datum=`date +"%d.%m.%y`
Fehler : /volume1/skripte/ds3615_backup_ds415.sh: command substitution: line 103: unexpected EOF while looking for matching `"'

Befehl : endzeit=$(date +"%s")
Fehler : /volume1/skripte/ds3615_backup_ds415.sh: command substitution: line 104: syntax error: unexpected end of file

Befehl : zeit=`date +"%H:%M`
Fehler : /volume1/skripte/ds3615_backup_ds415.sh: command substitution: line 107: unexpected EOF while looking for matching `"'

Befehl : size_vol_volumeusb=`ssh root@192.168.0.211 "df -h" | grep /volume1 | awk '{print "Freier Speicher nach der Aktualisierung: " $4 }'`
Fehler : /volume1/skripte/ds3615_backup_ds415.sh: command substitution: line 108: syntax error: unexpected end of file


Kann mir dazu bitte jemand eine Tipp geben, wo der Syntaxfehler ist ? Scheint irgendwie mit den "`" zusammenzuhängen. Wie gesagt, unter DSM 5.2 lief das alles.

Vielen Dank
Fraubi
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
Habe mal weiter herumprobiert. Offenbar ist seit DSM 6 der Befehl

zeit=`date +"%H:%M`

der zum Speichern des aktuellen Datums in der Variable "zeit" dient, nicht mehr in dieser Form verwendbar.

Die Syntax sieht nun so aus

zeit=$(date +"%H:%M)

Warum auch immer, nu gehts wieder.

Fraubi
 

Umpalumpa

Benutzer
Mitglied seit
26. Dez 2014
Beiträge
57
Punkte für Reaktionen
0
Punkte
0
Hallo, ich habe keine Lösung, sondern nur ein weiteres Problem. Plötzlich (DSM6) funktionieren Cronjob-gestartete Scripte nur noch unzuverlässig. Ich kriege momenatn nicht 'raus woran das liegt. Eigentlich ist alles richtig (Eigentümer, Rechte des Scriptes ... die üblichen FEhler halt). Wenn ich es außerdem manuell als Eigentümer starte, dann läuft alles richtig. Es wird aber via Cron teilweise ausgeführt, das kann ich nachvollziehen ... echt schräg! :(

Gruß, Umpalumpa
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.074
Punkte für Reaktionen
3.892
Punkte
488
@fraubi
datum=`date +"%d.%m.%y` kann noch nie gegangen sein, da fehlt das " am Ende
Code:
datum=`date +"%d.%m.%y"`
geht auch in DSM6.

zeit=$(date +"%H:%M) ist auch falsch, zeit=$(date +"%H:%M") wäre richtig.
 

fraubi

Benutzer
Mitglied seit
25. Nov 2011
Beiträge
605
Punkte für Reaktionen
0
Punkte
42
@Benares

Du hast natürlich Recht, vielen Dank für Deine Hilfe.

Merkwürdiger Weise wurde unter DSM 5.2 trotz der fehlerhaften Befehle bei der Eingabe über Putty keine Fehlermeldung ausgeworfen und der entsprechende Wert wurde auch in der Variablen gespeichert. Wie gesagt, die Skripte liefen und das Ergebnis passte immer.

Erst bei DSM 6 kam bei Putty eine Fehlermeldung und die Variablen blieben leer, so dass ich erst dadurch auf den Fehler aufmerksam wurde.

Trotzdem besten Dank, für einen Windows-User ist die Linux-Syntax schon teils schwer zu verstehen.....

Beste Grüße
Fraubi
 
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