Ankündigung

Einklappen
Keine Ankündigung bisher.

Bash-Script auf Server anstoßen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS Bash-Script auf Server anstoßen?

    Hi,
    gibt es eine (einfache) Möglichkeit vom HS ein (beliebiges) Bash-script (mit Parametern) auf einem Linux-Server anzustoßen?
    Hintergrund:
    Ich möchte z.B. Prowl-Benachrichtigungen per wget durchführen. Dies kann mein Linux-Server - nicht aber der HS.
    Die Variante "IP/EIB-Telegramme senden" erfordert ja eine Art von Serverdienst auf dem Server. Vielleicht gibt es sowas ja schon - oder eben eine elegantere Variante?
    Oder per Web-Abfrage (von HS zum Server) einen Befehl auf dem Server zur CLI durchreichen?

    ?? bin für Tips dankbar !!

    Gruß
    Thorsten

    #2
    du könntest ein php-Skript als Webseite aufrufen, welches dann die Arbeiten auf dem Server erledigt, die du machen willst.

    Kommentar


      #3
      Variante a) in ganz Quick&Dirty:
      Code:
      ebox4300-vdr:~# cat udplistener.sh 
      #!/bin/sh
      WAVDIR=/usr/local/share/wav/
      IFS=","
      
      while [ 1 ]
      do
      echo > /dev/null | nc -q 1 -l -u -p 8006 |
      while read par1 par2 par3 par4 par5 par6 par7 par8 par9
      
      do
          echo received $line p $par1 p $par2 p $par3 p $par4 p $par5 p $par6 p $par7 p  $par8 p $par9
          case "$par1" in
              [[:lower:]]   ) echo "Lowercase letter";;
              [[:upper:]]   ) echo "Uppercase letter";;
              [0-9]         ) echo "Digit";;
              11 ) 
                      # Datatype 11 - simply aplay par2 
                      aplay $WAVDIR$par2.wav
                  ;;
              12 ) 
                      # Datatype 12 - TTS 
                      espeak $par2
                  ;;
              20 ) 
                      # Datatype 20 - plain cmds
                      $par2
                  ;;
              *             ) 
                      echo "unknown datatype"
                  ;;
          esac
      done 
      
      done
      
      ebox4300-vdr:~# grep udpl /etc/rc.local 
      killall udplistener.sh
      /root/udplistener.sh &
      (ist nur "teilweise", aber funktionieren tuts )
      Da schick ich vom HS nur 11,Garagentuer an 8006/UDP dann spielt er Garagentuer.wav ab..

      Variante b) - so auf dem WireGate - Plugin an GA anmelden und ausführen oder Plugin das aufm UDP-Socket horcht (socket_subscribe).

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        Hi,
        danke - hab die Antwort erst jetzt gesehen (war aber auch noch nicht soweit dass ich es benötigt habe).
        Mir gefällt die Lösung - damit werde ich auf meinem Asterisk-Server einige Durchsagen auf meinen IP-Phones ausgeben.
        Die sind schön verteilt im Haus - so das man im ganzen Haus auch was Mitkriegt (wenn gewünscht) :-)

        Gruß
        Thorsten

        Kommentar


          #5
          Zitat von makki Beitrag anzeigen
          Da schick ich vom HS nur 11,Garagentuer an 8006/UDP dann spielt er Garagentuer.wav ab..
          Hi
          dazu bin ich zu blöd :-(
          Wie muss das senden von "11,Garagentür" den aussehen?

          und frage2: wenn ich nicht für jeden einzelnen nachrichtentext ein IP-Telegram anlegen will könnte ich doch auch mein Telegram in ein 14Byte-iKO stecken - und eine Logik bauen die bei Änderung (sbc) des IKOs ein IP-Telegram losschickt mit dem inhalt des iKOs
          (so wie in bild 3&4 angedeutet) - oder hab ich da einen Denkfehler?

          Gruß
          Thorsten
          Angehängte Dateien

          Kommentar


            #6
            Siehe im Anhang, Textselektor o.ä. geht natürlich auch..
            Tipp am Rande: Umlaute wann immer möglich vermeiden

            Makki
            Angehängte Dateien
            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
            -> Bitte KEINE PNs!

            Kommentar


              #7
              Hi
              ich hole diesen alten Thread mal wieder hoch.
              Ich habe auf einem Debian Lenny Stable wohl ein upgrade zuviel gemacht.

              auf ein
              nc -q 1 -l -u -p 8006
              antwortet mir das NC nur noch mit seiner Usage-Parameter:
              Code:
              server:~# nc
              usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
                        [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
                        [-x proxy_address[:port]] [hostname] [port[s]]
              An den übergebenen Parametern liegts nicht (die hab ich alle der reihe nacht entfernt) - vielleicht fehlt jetzt ein Parameter (hostname? port?)

              Hat jemand eine Ahnung?

              Gruß
              Thorsten

              Kommentar


                #8
                Habs... das "-p" muss weg - der Port muss jetzt direkt angegeben werden.
                (wobei die "man" noch angibt das es -p gibt...)
                Gruß
                Thorsten

                Kommentar


                  #9
                  Nur so zur Info: Für die die Probleme mit "nc" haben empfehle Ich "socat" zu testen. Ich bin vor einiger Zeit von nc auf socat umgestiegen weil sich nc immer mal wieder nach einem patch anders verhielt, inklusive unerklärliches Verhalten was nicht auf optionen zurückzuführen war.

                  Gruss,
                  Gaston

                  Kommentar


                    #10
                    Hallo,

                    nach so langer Zeit in der das Script von makki jetzt ohne Probleme bei mir läuft, funktioniert es nun leider auf neuer Hardware mit einem aktuellen Linux nicht mehr richtig. Ich konnte das Problem auf "nc" eingrenzen und auch der Vorschlag von ThorstenGehrig ohne den Parameter "-p" zu arbeiten brachte leider keinen Erfolg.

                    Kann mir vielleicht jemand bei der Verwendung von "socat" etwas auf die Sprünge helfen?

                    Gruß
                    Sebastian

                    Kommentar


                      #11
                      Es gibt verschiedene netcats. Probier doch mal GNU Netcat aus, wenn Netcat nicht funktioniert (oder anders herum).

                      Kommentar


                        #12
                        Ich hatte eigentlich gehofft, mir würde jemand seine Codezeile zur Verfügung stellen, damit ich mich nicht weiter mit dem Syntax und den Parametern von "socat" auseinander setzten muss.

                        Gruß
                        Sebastian

                        Kommentar


                          #13
                          Problem gelöst,???? es geht weiterhin mit „nc“ und dem zusätzlichen Parameter „k“.

                          Gruß
                          Sebastian

                          Kommentar

                          Lädt...
                          X