Shellscript für Werbezapper

    • Willst das wirklich versuchen? Dann installiere das Programm mit opkg: opkg install strace
      Und in deinem Script wo das wget nicht funktioniert (die Stelle, wo der channel ausgelesen wird) ersetzt du den Aufruf von wget durch
      strace -o /tmp/wget.log wget -q -O- ...

      Kannst du vorher auf der Kommandozeile einmal ausprobieren: strace wget -q -O- http://localhost/web/subservices - die Ausgabe wird mit dem -o Parameter nach /tmp/wget.log geschrieben. Da steht dann drin, was wget so alles an Betriebssystem-Aufrufen gemacht hat. Unter anderem hoffentlich, warum genau das "short write" bei dir kommt.
    • @rdamas
      genau das meine ich. Wenn ich das richtig sehe schreibt wget aber nicht auf die hdd sondern nach /dev/null, was er scheinbar nicht mehr kann und dort kein Platz ist...
      - aus welchen Gründen auch immer...

      @skamm71
      Post#2 gelesen?
      Post#13 gelesen?
      Rechtschreibfehler sind beabsichtigt und fördern ein genaueres Lesen
    • @hajeku123: Klar, ich habe alle posts gelesen :)

      @rdamas: Also aufhören tut es schon mal mit Exit 1......
      Ich habe beide getract, einmal über console und einmal über die FB.
      Dateien
      • wget.console.log

        (8,34 kB, 1 mal heruntergeladen, zuletzt: )
      • wget.enigma2.log

        (11,46 kB, 2 mal heruntergeladen, zuletzt: )
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Sieht für mich so aus, als ob die Pipe "|" nicht "da" ist oder geschlossen wurde oder was auch immer; jedenfalls bekommt das wget seine Ausgabe nicht abgeliefert. Und quittiert das mit EPIPE.

      Hast du eigentlich mal versucht, die Service-Reference so zu ermitteln, wie ich das gestern geschrieben habe?
      current=$(wget -q -O- http://localhost/web/subservices | xmllint --xpath '/e2servicelist/e2service/e2servicereference/text()' -)
      Knallt das auch?
    • Jop, das schlägt auch fehl...
      Gerade nochmal getestet.
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Funktioniert dann vielleicht ein Workaround, dass du das Ergebnis von wget in ein File schreibst, dieses dann mit xmllint wie oben wieder ausliest um so an die Service-Ref zu kommen? Also

      Shell-Script

      1. wget -q -O /tmp/sref.xml http://localhost/web/subservices
      2. current=$(xmllint --xpath '/e2servicelist/e2service/e2servicereference/text()' /tmp/sref.xml)
      3. rm /tmp/sref.xml

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

    • @rdamas: Wow, das geht!
      Ich hatte gestern zwar auch mit dem Umweg über ein temporäres file begonnen, das hatte aber so wie ich das gemacht hate nicht geklappt. Wobei, gestern habe ich auch noch über das plugin.py getestet und jetzt über MQB direkt das script - naja, Hauptsache es geht!

      Nun schaut das script wie folgt aus:

      Shell-Script

      1. #!/bin/sh
      2. # wget -q --spider http://localhost/web/remotecontrol?command=174
      3. sleep 1
      4. wget -q -O /tmp/sref.xml http://localhost/web/subservices
      5. channel=$(xmllint --xpath '/e2servicelist/e2service/e2servicereference/text()' /tmp/sref.xml)
      6. # echo $channel >> /tmp/channel.zap
      7. sleep 420
      8. wget -q -O - http://localhost/web/zap?sRef=$channel
      Das mit dem "xmllint --xpath" muss ich mir mal genauer anschauen. Das macht für mich einen guten Eindruck und man spart sich das auseinanderbauen so wie ich das zuvor gemacht hatte ;)

      Vielen Dank für die Gedult & Unterstützung!!!


      LG
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."
    • Neu

      Zur Vollständigkeit:

      Ich habe mir jetzt über MQB 8 Einträge in 60 Sekunden Schritten über den roten Knopf zum Startscript gemacht, in dem die Zeit zum Umschalten mitgegeben wird als Argument.
      Also:

      Script.sh 60
      Script.sh 120
      ...

      Das wird im Startscript als $1 ausgewertet und genauso an das eigentliche Script weiter gegeben. Dort sitzt dann kein fester "sleep" mehr sondern "sleep $1"

      Somit kann ich nun flexibel zurückschalten lassen ;)

      LG
      LG skamm71

      "Alle sagten: Das geht nicht. Dann kam einer, der wusste das nicht und hat's gemacht."