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.