Script auf Remote Rechner starten

Startseite Foren Deutsches LiveCode-Forum Script auf Remote Rechner starten

Ansicht von 8 Antwort-Themen
  • Autor
    Beiträge
    • #45501
      MichaelS
      Teilnehmer

        Hallo zusammen,
        hat jemand eine Idee wie ich ein Bash Script oder Python Script auf einem Server (per IP Adresse und PW erreichbar) starten kann?
        Ich würde gerne eine Webcam aus der Ferne starten und das aufgenommene Bild per SFTP Verbindung auf mein Android Smartphone übertragen und ansehen.
        Wie könnte ich so ein Programm auf einem Remote Server starten?

        Liebe Grüsse
        Michael

      • #45530
        Torsten
        Teilnehmer

          Hi Michael,

          ich verstehe Deine Struktur noch nicht ganz: also
          1. es gibt irgendwo einen Server, an den eine Webcam angeschlossen ist
          2. jetzt musst Du erstens wissen, wie man das Programm startet, welches der Webcam sagt, dass sie ein Bild machen soll
          3. dann musst Du wissen, wo das Bild gespeichert wird und wie es heisst.
          4. musst Du eine Schnittstelle auf dem Server haben, die aus dem Netz angesprochen werden kann und die das Bild zurückliefert.

          Frage:
          zu 1. wie heisst der Server, ist der von Dir oder ein öffentlicher Server? Es hört sich so an, als ob es Deiner wäre?
          zu 2+3. wenn es ein öffentlicher ist, gibt es dafür eine Schnittstelle/API? wenn es dein eigener ist, musst Du rausfinden, wie das Webcam-Programm funktioniert
          zu 4. wenn es Dein eigener ist, musst Du entweder den FTP-Zugang öffnen oder ein Script schreiben, welches das Bild (oder einen Link darauf?) an dein Smartphone zurückschickt.

          Happy Coding
          Torsten

        • #45537
          MichaelS
          Teilnehmer

            Hallo Torsten,
            danke für deine Antwort.
            Eigentlich ist die Sache ganz einfach. Ein Raspberry in meinem Ferienhaus hat eine Webcam. Wenn ich mich per SSH dort einloge und camera.sh eingebe, macht die Camera ein Foto und speichert es mit Datum in den selben Ordner. Das herunterladen des Fotos per SFTP ist kein Problem, es geht nur um das starten des Programms auf dem Raspberry. Ich möchte also von unterwegs sprich wenn ich auf Reisen bin, ein Bild aufnehmen und mir ansehen wie das Grundstück aussieht (z.B.Rasen hoch = muss gemäht werden und ich muss dorthin).
            wie kann ich also aus der Ferne per Livecode das Programm „camera.sh“(Bash-Script) ausführen.

            Gruß
            Michael

          • #45551
            Torsten
            Teilnehmer

              Hi,
              Ich habe eben einen alten Thread gefunden, bei dem es auch um ssh geht, schau Dir den mal an:

              ssh per LC ausführen

              Happy Coding
              Torsten

            • #45553
              MichaelS
              Teilnehmer

                Hallo Torsten,
                den Thread schaue ich mir nochmal genauer an. Das mit dem Shell Aufruf auf dem Raspberry habe ich gerade probiert, und es scheiterte auch bei mir an der Passwortabfrage.

                Ich habe mir gestern Abend nochmal intensiv Gedanken darüber gemacht.Ich könnte vom Smartphone aus eine .txt Datei an den Server schicken die entweder das Wort „AN“ oder „AUS“ enthält. Das Bash Script „camera.sh“ könnte eine While Schleife durchlaufen die die Variable in der Textdatei einliest, und in Abhängigkeit des Flags „AN“ oder „AUS“ ein Bild macht und abspeichert. Auf diese .jpg Datei kann ich problemlos zugreifen.
                Ich denke die Machart ist aber nicht optimal, weil sich die IP Adresse des Raspis regelmäßig ändert.

                Im Moment misst der Raspi stündlich Temperatur und Feuchte im Kellerbereich und sendet die Daten auch stündlich mit 5 Minuten Versatz an meinen Mietserver mit statischer IP. Auf die Daten greife ich mit meiner TempMonitor App zu.

                Es ist wahrscheinlich einfacher stündlich ein Foto mit der Camera zu machen, die .jpg Datei mit den Temperaturdaten zusammen an den Mietserver zu senden. Von dort aus kann ich das Foto
                dann in die Smartphone App einladen. Ist vielleicht nicht so komfortabel , aber einfacher zu handhaben.

                Ich probiere das jetzt mal aus.
                Danke für deine Lösungsansätze und Hilfe
                Gruß
                Michael

              • #45566
                Torsten
                Teilnehmer

                  Das mit dem stündlichen Bild scheint mir auch deswegen gut zu sein, da du dadurch einen Film hast 🙂

                  Happy Scripting
                  Torsten

                • #45568
                  MichaelS
                  Teilnehmer

                    Genau, danke und Gruß.
                    Michael

                  • #47155
                    mimu
                    Teilnehmer

                      Hi MichaelS,
                      ein bisschen spät, aber so sollte es gehen:

                      on mouseUp 
                         local pC
                         -- full path to shellscript or shellcommand
                         put "df -h" into tshellScript
                         -- pc  Array with connetion params
                         put "YourUsername" into pC["user"]
                         put "YourPassword" into pC["pw"]
                         put "IPAddressOfYourServer" into pC["ServAdress"]
                         put 22 into  pC["port"]
                         
                         put runRemoteShellScript(tshellScript, pC) into tresult
                         answer tresult
                      end mouseUp
                      
                      function runRemoteShellScript pPathToScript pC
                         put "spawn -noecho ssh -p "&pC["port"]&" "&pC["user"]&"@"&pC["ServAdress"]&" "&pPathToScript&" " 
                         set the shellcommand to "/bin/bash"
                         get "expect -c" & quote &cr& \
                               "set timeout 1" &cr& \
                               "spawn -noecho ssh -p "&pC["port"]&" "&pC["user"]&"@"&pC["ServAdress"]&" "&pPathToScript&" " &cr&\
                               "expect password: { send "&pC["pw"]&"\r\n; }" &cr& \
                               "set timeout 100" &cr& \
                               "expect eof" &cr& \
                               "sleep 1" &cr& \
                               "exit" & quote
                         get shell(it)
                         return "shell: " & it &cr& the result
                      end runRemoteShellScript
                    • #47211
                      MichaelS
                      Teilnehmer

                        Hallo mimu,
                        danke für deinen Post und Lösungsansatz. Dein Script schaue ich mir bei Gelegenheit mal an. Die Aufgabe habe ich aber seit längerem gelöst in dem ich einen Cronjob auf dem Remote Recher definiert habe, der stündlich ein Bild aufnimmt und speichert. Darauf habe ich per App über SFTP Zugriff.

                        Wie gesagt, vielen Dank für deine Bemühungen.
                        Gruß
                        Michael

                    Ansicht von 8 Antwort-Themen
                    • Du musst angemeldet sein, um auf dieses Thema antworten zu können.