Brauche Hilfe für Script zur OTR-Batchdekodierung

Computerboss

Benutzer
Mitglied seit
10. Apr 2013
Beiträge
137
Punkte für Reaktionen
0
Punkte
0
Guten Abend,
Danke für die schnelle Antwort.
Habe mich über Putty als root verbunden und den Pfad zum Skript eingegeben dass kommt dabei heraus :
putty.PNG

PS: Die Datei ist aber natürlich da ich habe den Pfad der Datei entnommen indem ich einen Rechtsklick auf die Datei gemacht habe.
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
Sorry, aber ich bin auch kein Pinguin ;-)
Da müsste mal jemand anderes ran …

Hast du mal nach "-ash not found" im Forum gesucht?
Ich habe das hier gefunden http://www.synology-forum.de/showthread.html?29013-Shell-script-not-found&highlight=-ash+not+found Vielleicht hilft es ja weiter.

Überprüfe auch noch einmal genau den Inhalt des Scripts sowie ob UNIX-Zeilenenden eingestellt sind (einen Editor wie Notepad+ unter Windows verwenden und dort entsprechend einstellen).

Gib mal bescheid, ob du weiter gekommen bist und was geholfen hat.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Guten Abend,
Danke für die schnelle Antwort.
Habe mich über Putty als root verbunden und den Pfad zum Skript eingegeben dass kommt dabei heraus :
Anhang anzeigen 16011

PS: Die Datei ist aber natürlich da ich habe den Pfad der Datei entnommen indem ich einen Rechtsklick auf die Datei gemacht habe.

Mir geht es ganz genau so! In meiner 214play habe ich alle Pfade richtig angegeben und auch über telnet komme ich mit "cd /..." bis ins otr-Verzeichnis und kann die Batchdatei.sh über "dir" sehen, aber aufrufen kann ich sie nicht!?
Egal ob ich sie im Verzeichnis selbst oder von woanders her aufrufe...:(
Auch kann ich keine andere Datei über Telnet aufrufen.

Im Notepad+ Editor ist das Zeilenende auf UNIX eingestellt.

Mit cat OTRbatch.sh kann ich den Inhalt seltsamerweise allerdings anzeigen:confused::confused::confused:

Hat jemand eine Idee?

EDIT:
Übrigens: Weiß jemand, ob ich für die 214play den a)statisch gelinkten b)dynamisch gelinkten Ubuntu c)ARMV5 statisch gelinkten oder d)ARMV5 dynamisch gelinkten

Decoder brauche?

Nochmals EDIT:

Hier noch ein Screenshot meiner Batchdatei:
zzzz.jpg
 
Zuletzt bearbeitet:

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
ist die sh Datei denn auch ausführbar? Ggf mal mit sh /pfad/zur/datei aufrufen. Wenn es dann geht ist die Datei nicht ausführbar, was man mittels chmod +x /pfad/zur/datei ändern kann
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129

EDIT:
Übrigens: Weiß jemand, ob ich für die 214play den a)statisch gelinkten b)dynamisch gelinkten Ubuntu c)ARMV5 statisch gelinkten oder d)ARMV5 dynamisch gelinkten Decoder brauche?

Etwas weiter oben findest du die Antwort: dynamisch gelinkter Decoder
Bestimmt nicht der ARM. Wahrscheinlich dynamisch gelinkten Ubuntu
Den Decoder via SSH mit diesem Befehl testen:
Rich (BBCode):
/Pfad/zum/Decoder/otrdecoder -h
Wenn er funktioniert, gibt er damit die möglichen Parameter aus.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
@jahlives
Danke für deinen Tipp, aber chmod brachte nichts.

@geimist
Auch dir danke! Datei ist ausführbar und der Pfad OKAy.

Es funktioniert nur, wenn ich über Telnet
/volume1/homes/XXXX/otr/decoder/otrdecoder -i /volume1/homes/XXXX/Downloads/*.otrkey -e XXXXXXXX@gmail.com -p XXXXX
eingebe.

Wenn ich aber die gleiche Zeile in eine OTR.sh-Datei mit dem Notepad++ packe und als .sh abspeichere und dann mit dem DS Aufgabenplaner ausführen lasse funktioniert es nicht!!???
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
Ich weiß nicht, wo da das Problem liegt.

Hast du in der 1. Zeile im Script auch das stehen:
Rich (BBCode):
#!/bin/sh
Du kannst aber auch den Inhalt der .sh Datei direkt in die Aufgabenplanung eingeben (also anstelle des Pfades zum Script) - natürlich auch mit der entsprechenden Suchschleife, damit du den Eintrag nicht ändern musst.
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
#!/bin/sh steht drin.

Den Inhalt der Skriptdatei habe ich auch schon probiert: Geht nur über Telnet und nicht über Aufgabenplaner.
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
was auch sein kann, wenn es im cron (Aufgabenplanung) nicht klappt: der cron hat eine eigene PATH Umgebung, die sich von der Shell unterscheidet
Mach mal auf der Shell ein echo $PATH und kopiere diese Pfad in dein Script. Im Script direkt auf der folgenden Zeile nach #!/bin/sh
Code:
#!/bin/sh
PATH=KOPIERTER_OUTPUT_VOM_ECHO
export PATH
# Rest deines Codes
Zudem würde ich immer empfehlen bei solchen cron Problemen den Output (auch die Fehler) des Scriptes in ein File zu loggen
Dazu einfach hinten an der Zeile der Aufgabe
Code:
DEIN_SCRIPT_AUFRUF PARAMETER >/tmp/script.log 2>&1
dann warten bis das Script aufgerufen wurde und dann /tmp/script.log kontrollieren
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
echo$PATH meinst du auf welcher Ebene - auf root?
 

jahlives

Moderator
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
2
Punkte
0
einfach auf der Konsole, egal in welchem aktuellen Verzechnis du bist
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Okay, das werde ich am Wochenende versuchen.
Danke schon mal.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Habe es nach dem Echo mit diesem Script (Name ist aa.sh) versucht:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH /volume1/homes/XXXX/otr/decoder/otrdecoder -i /volume1/homes/XXXX/otr/decoder/Film.otrkey -e XXXX@gmail.com -p XXXX PARAMETER >/tmp/script.log 2>&1

Dann über den Aufgabenplaner damit aufgerufen:
sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
/volume1/homes/XXXX/otr/decoder/aa.sh PARAMETER >/tmp/script.log 2>&1

Anschließend mit cat /tmp/script.log 2>&1 dieses Log herausbekommen:
sh: /volume1/homes/XXXX/otr/decoder/aa.sh: not found


NIX geht. Och meno!

Habe ich irgendetwas übersehen?

EDIT:
Es funktioniert!!! Ich habe jetzt das mit dem Echo Pfad ganz rausgenommen und nochmal mit chmod +x ausführbar gemacht und jetzt geht es plötzlich!?

Nur beim OTR Script von Geimist kommt folgende Fehlermeldung: /....sh: line 21: syntax error: unexpected word (expecting "do")
Wo steckt da der Fehler?
 
Zuletzt bearbeitet:

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
Was steht denn in Zeile 21?
Poste doch am Besten das ganze Script von dir (geschwärzte LoginDaten).

Zwischen "for i …" und "do …" dürfen keine anderen Befehlszeilen sein.
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Was steht denn in Zeile 21?
Poste doch am Besten das ganze Script von dir (geschwärzte LoginDaten).

Zwischen "for i …" und "do …" dürfen keine anderen Befehlszeilen sein.

Das ist eigentlich dein gepostetes Script: www.jpg
Der Löschordner ist toll und den würde ich gerne haben, weil ich mit dem reinen otr-Script immer nur die erste Datei der Liste dekodieren kann.
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
Ich bin mir nicht völlig sicher, ob es daran liegt, aber du hast schon gesehen, dass "do" alleine in der Zeile stehen sollte?! (nichts davor und nichts danach)
 

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Deinen Hinweis habe ich verändert; leider gibt es immer noch das gleiche Ergebnis :(
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
… da weiß ich auch nicht, sorry :(

Bei mir erscheint diese Fehlermeldung, wenn ich zwischen der for-Anweisung und dem "do" einen weiteren Befehl dazwischen bringe.
Rich (BBCode):
30> …
31> for i in $(find "$infolder" -maxdepth 1 -name "*.otrkey" -mmin +"$timediff" -type f)
32> echo $i
33> do 
34> …

/volume1/homes/admin/script/OTR/tmp.sh: line 32: syntax error: unexpected word (expecting "do")

Aber man sieht ja wirklich nichts dazwischen …

Irgendwelche unsichtbare Zeichen?
Zeilenenden auf UNIX gestellt?
 
Zuletzt bearbeitet:

toller

Benutzer
Mitglied seit
06. Feb 2014
Beiträge
136
Punkte für Reaktionen
1
Punkte
18
Ja, Zeilenenden auf unix gestellt.
Heute abend schreibe ich noch ein letztes mal die letzten 5 Zeilen des Scripts und wenn es immer noch nicht geht, dann muss es wohl bei mir so sein.:rolleyes:
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.381
Punkte für Reaktionen
148
Punkte
129
Nicht aufgeben!!!
Das muss lösbar sein!

Mit ist noch etwas aufgefallen. Die Variable "infolder" sollte ein Ordnerpfad sein. Dein Pfad endet aber auf "…/*.otrkey". Also einfach so ändern, dass der Pfad mit dem Quellordner und einem Backslash endet (also das "*.otrkey" entfernen).

Ich habe einfach mal das Script von mir angehangen (gezippt) / ändere nur noch die Variablen: Anhang anzeigen OTRbatchdecodieren.sh.zip