Problem beim Ausführen eines scripts per MQB

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Problem beim Ausführen eines scripts per MQB

      Moin,

      ich habe folgendes script per MultiQuickButton auf eine Taste der FB gelegt um mein NAS per Tastendruck hochzufahren:

      Shell-Script

      1. #!/bin/sh
      2. ether-wake -b 02:11:54:48:E1:C2
      das script liegt im Ordner /etc/init.d/wolnas.sh, die Rechte wurden mit chmod 755... angepasst

      Wenn ich mich per Telnet verbinde und das script manuell starte fährt das NAS hoch. Drücke ich allerdings die vorgesehene Taste auf der FB passiert nichts. Kann mir da jemand helfen?

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Derek18 ()

    • Dann bleibt dir wohl nur noch, zu debuggen, ob das Script überhaupt ausgeführt wird. Damit würde ich mal anfangen.

      Versuch mal folgende zwei Zeilen in das Script einzubauen und dann nochmal per MQB starten:


      Shell-Script

      1. #!/bin/sh
      2. exec > /tmp/script.log 2>&1
      3. set -x
      4. ether-wake -b 02:11:54:48:E1:C2
      Damit wird nach /tmp/script.log mit geloggt, was das Script macht.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • Häng das Script mal hier an .
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Shell-Script

      1. #!/bin/sh
      2. exec > /tmp/script.log 2>&1
      3. set -x
      4. ether-wake -b 02:11:54:48:E1:C2
      Das script wird nicht ausgeführt, unter tmp wird kein script.log angelegt. Gerade mal per telnet probiert, da erhalte ich "ambigous redirect"

      MQB funktioniert grundsätzlich, hab mal testweise irgendeine Funktion auf die Taste, welche ich fürs WOL nutzen will gelegt, das geht...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Derek18 ()

    • Versuch mal #!/bin/bash als Interpreter - wenn /bin/sh ein Symlink zum Busybox-Binary ist, wird diese Fehlermeldung da her kommen. Die bash findet das nicht mehrdeutig. (Mal wieder ein Grund mehr, auf den Boxen wo der Flash nicht knapp ist, Busybox in die Tonne zu treten.)
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • Die Datei von der Box als Anhang hier hochladen .
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Danke für eure Hilfe, jetzt funktioniert es. Es lag an der Datei selbst UND am Interpreter. Der Hinweis von markusw hat mich darauf gebracht. Ich hab einfach mal eine andere .sh Datei kopiert und mein Skript dort eingefügt, plötzlich funktioniert es. Hatte vorher einfach eine Datei erstellt und in .sh umbenannt. Wieder was gelernt.

      Übrigens funktioniert es mit #!/bin/sh nicht, es geht nur mit #!/bin/bash

      Danke euch!
    • Welchen Editor verwendest du ?
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      KAPIERVORGANG beendet.

      Zubehör : Philips 46PFL-9705 / 37PFL-9604, Samsung HT-E6759W, Samsung SPF 107H-105P-87H, Qnap TS-253A, Harmony 650, Fritzbox 7490, Cisco WAP4410N, Netgear M4100-D12G, TPLink HS100/HS110/LB110
    • Da du als aller erstes gesagt hast, dass du das Script im Telnet ausführen kannst, bin ich fälschlicherweise davon ausgegangen, dass dein Script auch funktioniert, wenn du es auf der Konsole ausführst; d.h. dass es mit Unix-Zeilenenden (LF) und nicht Windows-Zeilenenden (CR/LF) abgespeichert wurde. Dass also ein Aufruf im Telnet mit "/etc/init.d/wolnas.sh" nicht die bekannte Fehlermeldung "bad interpreter: No such file or directory" ausgibt.

      Frage meinerseits ist jetzt: wie hast du das Script denn im Telnet getestet, dass du dabei nicht diese Fehlermeldung erhalten hast? Falsche Zeilenenden wären ansonsten nämlich meine erste Vermutung gewesen, wenn du nicht geschrieben hättest "Script hat Rechte 0755 und kann von Hand gestartet werden". Hätte dir einige Stunden raten und testen erspart :D .

      Note to myself: beim nächsten Mal explizit nachfragen, dass das Script mit Unix-Zeilenenden gespeichert wurde und Execute-Rechte am Script gesetzt wurden.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • Ja, so funktioniert das. So ruft MQB das Script aber nicht auf, wie du selber gemerkt hast ^^ - MQB ist es nämlich egal, ob das ein Shell Script, ein Python Script, ein kompiliertes Programm oder was auch immer ist.

      Wichtig (für MQB) ist erst einmal, dass das Programm ausführbar ist (was du mit 0755 gemacht hast). Dann schaut Linux nach, ob du ein kompiliertes Programm hast oder ein Script, welchem du in der ersten Zeile mitgeben musst, welcher Interpreter das Script ausführen soll (diese Zeile muss mit #! anfangen).

      Wenn du im Telnet das Script mittels "sh ..." aufrufst, steht der Interpreter schon fest und das Script muss noch nicht einmal ausführbar sein.

      Das als kurze Erklärung dieser Linux-/Unix-Facette.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • Rechtschreibfehler sind beabsichtigt, sie fördern ein genaueres Lesen
      Debug Log aktivieren Putty Telnet Screenshots erstellen

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hajeku123 ()