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

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

fraubi

Benutzer
Registriert
25. Nov. 2011
Beiträge
605
Reaktionspunkte
1
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
 
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
 
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
 
@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.
 
@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