Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. simple-ssh mehrere Befehle senden

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

simple-ssh mehrere Befehle senden

simple-ssh mehrere Befehle senden

Scheduled Pinned Locked Moved Skripten / Logik
19 Posts 5 Posters 1.4k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    femi
    wrote on last edited by femi
    #1

    Hallo Zusammen,
    ich habe mir ein Script gebaut das per simple-ssh einen Befehl an einen entfernten Rechner schicken kann.
    Das funktioniert auch soweit, aber nur mit einem einzelnem Befehl.
    Ich müsste aber mehrere Zeilen senden.
    Es geht darum das Wlan Modul von einem Lancom AP abzuschalten.
    Die Befehle wären folgende:

    cd /Setup/Interfaces/WLAN/Operational
    set  WLAN-1   {Operating}  No
    set  WLAN-2   {Operating}  No
    cd /Setup/Interfaces/WLAN/Operational
    set  WLAN-1   {Operating}  No
    set  WLAN-2   {Operating}  No
    

    gibt es da eine Möglichkeit?
    Mit ";" getrennt funktioniert es nicht.

    So sieht das Java Script momentan aus:

    var SSH = require('simple-ssh');
    var ssh = new SSH({
    host: '192.168.xxx.xxx',
    user: 'root',
    pass: 'passwort'
    });
    ssh.exec('cd /Setup/Interfaces/WLAN/Operational').start();
    

    Vielen Dank schon mal!

    liv-in-skyL AlCalzoneA OliverIOO 3 Replies Last reply
    0
    • F femi

      Hallo Zusammen,
      ich habe mir ein Script gebaut das per simple-ssh einen Befehl an einen entfernten Rechner schicken kann.
      Das funktioniert auch soweit, aber nur mit einem einzelnem Befehl.
      Ich müsste aber mehrere Zeilen senden.
      Es geht darum das Wlan Modul von einem Lancom AP abzuschalten.
      Die Befehle wären folgende:

      cd /Setup/Interfaces/WLAN/Operational
      set  WLAN-1   {Operating}  No
      set  WLAN-2   {Operating}  No
      cd /Setup/Interfaces/WLAN/Operational
      set  WLAN-1   {Operating}  No
      set  WLAN-2   {Operating}  No
      

      gibt es da eine Möglichkeit?
      Mit ";" getrennt funktioniert es nicht.

      So sieht das Java Script momentan aus:

      var SSH = require('simple-ssh');
      var ssh = new SSH({
      host: '192.168.xxx.xxx',
      user: 'root',
      pass: 'passwort'
      });
      ssh.exec('cd /Setup/Interfaces/WLAN/Operational').start();
      

      Vielen Dank schon mal!

      liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      wrote on last edited by
      #2

      @femi

      geht es mit && anstatt ;

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      F 1 Reply Last reply
      0
      • liv-in-skyL liv-in-sky

        @femi

        geht es mit && anstatt ;

        F Offline
        F Offline
        femi
        wrote on last edited by femi
        #3

        @liv-in-sky
        Nö, geht auch nicht.
        und ^M auch nicht.

        liv-in-skyL 1 Reply Last reply
        0
        • F femi

          @liv-in-sky
          Nö, geht auch nicht.
          und ^M auch nicht.

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          wrote on last edited by
          #4

          @femi

          kannst du ein bash-script auf dem entfernten rechner einrichten mit mehreren befehlen und dieses bash-script über ssh aufrufen ?

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          F 1 Reply Last reply
          0
          • liv-in-skyL liv-in-sky

            @femi

            kannst du ein bash-script auf dem entfernten rechner einrichten mit mehreren befehlen und dieses bash-script über ssh aufrufen ?

            F Offline
            F Offline
            femi
            wrote on last edited by
            #5

            @liv-in-sky
            Nö, das ist ein Lancom Accesspoint

            liv-in-skyL 1 Reply Last reply
            0
            • F femi

              @liv-in-sky
              Nö, das ist ein Lancom Accesspoint

              liv-in-skyL Offline
              liv-in-skyL Offline
              liv-in-sky
              wrote on last edited by
              #6

              @femi

              kann diese nom node helfen ?

              https://www.npmjs.com/package/ssh2shell?activeTab=readme

              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

              F 1 Reply Last reply
              0
              • liv-in-skyL liv-in-sky

                @femi

                kann diese nom node helfen ?

                https://www.npmjs.com/package/ssh2shell?activeTab=readme

                F Offline
                F Offline
                femi
                wrote on last edited by
                #7

                @liv-in-sky
                könnte sein, aber ich blicke leider überhaupt nicht durch.

                liv-in-skyL 1 Reply Last reply
                0
                • F femi

                  Hallo Zusammen,
                  ich habe mir ein Script gebaut das per simple-ssh einen Befehl an einen entfernten Rechner schicken kann.
                  Das funktioniert auch soweit, aber nur mit einem einzelnem Befehl.
                  Ich müsste aber mehrere Zeilen senden.
                  Es geht darum das Wlan Modul von einem Lancom AP abzuschalten.
                  Die Befehle wären folgende:

                  cd /Setup/Interfaces/WLAN/Operational
                  set  WLAN-1   {Operating}  No
                  set  WLAN-2   {Operating}  No
                  cd /Setup/Interfaces/WLAN/Operational
                  set  WLAN-1   {Operating}  No
                  set  WLAN-2   {Operating}  No
                  

                  gibt es da eine Möglichkeit?
                  Mit ";" getrennt funktioniert es nicht.

                  So sieht das Java Script momentan aus:

                  var SSH = require('simple-ssh');
                  var ssh = new SSH({
                  host: '192.168.xxx.xxx',
                  user: 'root',
                  pass: 'passwort'
                  });
                  ssh.exec('cd /Setup/Interfaces/WLAN/Operational').start();
                  

                  Vielen Dank schon mal!

                  AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  wrote on last edited by
                  #8

                  @femi Hast du mal versucht, die Anleitung des Pakets simple-ssh zu lesen?
                  https://www.npmjs.com/package/simple-ssh
                  Da gibts nen extra Abschnitt "Chaining commands together"

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  F 1 Reply Last reply
                  0
                  • F femi

                    @liv-in-sky
                    könnte sein, aber ich blicke leider überhaupt nicht durch.

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #9

                    @femi

                    ja - ist kompliziiert - bekomme es auch nicht ans laufen

                    wenn der vorschlag von @AlCalzone (habe ich vorher leider in der npm beschreibung überlesen) nicht funktioniert, kannst du den exec() versuchen

                    kannst du deine befehle über die konsole ausführen ? mit einem ssh befehl - dann exec() versuchen
                    falls es dabei ein passsword problem gibt, könntest du sshpass installieren

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    F 1 Reply Last reply
                    0
                    • F femi

                      Hallo Zusammen,
                      ich habe mir ein Script gebaut das per simple-ssh einen Befehl an einen entfernten Rechner schicken kann.
                      Das funktioniert auch soweit, aber nur mit einem einzelnem Befehl.
                      Ich müsste aber mehrere Zeilen senden.
                      Es geht darum das Wlan Modul von einem Lancom AP abzuschalten.
                      Die Befehle wären folgende:

                      cd /Setup/Interfaces/WLAN/Operational
                      set  WLAN-1   {Operating}  No
                      set  WLAN-2   {Operating}  No
                      cd /Setup/Interfaces/WLAN/Operational
                      set  WLAN-1   {Operating}  No
                      set  WLAN-2   {Operating}  No
                      

                      gibt es da eine Möglichkeit?
                      Mit ";" getrennt funktioniert es nicht.

                      So sieht das Java Script momentan aus:

                      var SSH = require('simple-ssh');
                      var ssh = new SSH({
                      host: '192.168.xxx.xxx',
                      user: 'root',
                      pass: 'passwort'
                      });
                      ssh.exec('cd /Setup/Interfaces/WLAN/Operational').start();
                      

                      Vielen Dank schon mal!

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      wrote on last edited by
                      #10

                      @femi

                      https://www.lancom-forum.de/lancom-wireless-aktuelle-accesspoints-f35/konfig-script-per-scp-auf-access-point-uebertragen-t13978.html

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      1 Reply Last reply
                      0
                      • AlCalzoneA AlCalzone

                        @femi Hast du mal versucht, die Anleitung des Pakets simple-ssh zu lesen?
                        https://www.npmjs.com/package/simple-ssh
                        Da gibts nen extra Abschnitt "Chaining commands together"

                        F Offline
                        F Offline
                        femi
                        wrote on last edited by
                        #11

                        @alcalzone
                        Habe das getestet, funktioniert aber leider nicht.

                        var SSH = require('simple-ssh');
                        var ssh = new SSH({
                        host: '192.168.xxx.xxx',
                        user: 'root',
                        pass: 'Passwort'
                        });
                        ssh
                        .exec('cd /Setup/Interfaces/WLAN/Operational', {
                                out: console.log.bind(console)
                            })
                        .exec('set WLAN-1 {Operating} No', {
                                out: console.log.bind(console)
                            })
                            .start();
                        
                        1 Reply Last reply
                        0
                        • liv-in-skyL liv-in-sky

                          @femi

                          ja - ist kompliziiert - bekomme es auch nicht ans laufen

                          wenn der vorschlag von @AlCalzone (habe ich vorher leider in der npm beschreibung überlesen) nicht funktioniert, kannst du den exec() versuchen

                          kannst du deine befehle über die konsole ausführen ? mit einem ssh befehl - dann exec() versuchen
                          falls es dabei ein passsword problem gibt, könntest du sshpass installieren

                          F Offline
                          F Offline
                          femi
                          wrote on last edited by
                          #12

                          @liv-in-sky
                          auf der Konsole funktionieren die Befehle

                          Leider funktioniert "sceen" nicht auf dem Lancom, sonst könnte ich sehen was überhaupt passiert.

                          liv-in-skyL 1 Reply Last reply
                          0
                          • F femi

                            @liv-in-sky
                            auf der Konsole funktionieren die Befehle

                            Leider funktioniert "sceen" nicht auf dem Lancom, sonst könnte ich sehen was überhaupt passiert.

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            wrote on last edited by
                            #13

                            @femi

                            hast du den link von @OliverIO mal angesehen? ist das nicht sowas ?

                            der aufruf

                            cat <Skript-Datei> | ssh root@<Geräte-IP> beginscript
                            

                            soll doch letztlich aus der iobroker-console aufgerufen werden - wenn ich das richtig verstehe. wenn es aus der iobroker console funktioniert, kannst du dann im javascript den puren exec(...) befehl ausführen - ohne das ganze simple-ssh zeugs

                            exec('cat <Skript-Datei> | ssh root@<Geräte-IP> beginscript');
                            

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            F 1 Reply Last reply
                            0
                            • liv-in-skyL liv-in-sky

                              @femi

                              hast du den link von @OliverIO mal angesehen? ist das nicht sowas ?

                              der aufruf

                              cat <Skript-Datei> | ssh root@<Geräte-IP> beginscript
                              

                              soll doch letztlich aus der iobroker-console aufgerufen werden - wenn ich das richtig verstehe. wenn es aus der iobroker console funktioniert, kannst du dann im javascript den puren exec(...) befehl ausführen - ohne das ganze simple-ssh zeugs

                              exec('cat <Skript-Datei> | ssh root@<Geräte-IP> beginscript');
                              
                              F Offline
                              F Offline
                              femi
                              wrote on last edited by
                              #14

                              @liv-in-sky
                              Ich könnte natürlich für jeden Sender eine Scriptdatei erstellen mit der ich dann die Befehle ausführe.
                              Aber es sind über 100 Sender, es wäre viel einfacher wenn ich das direkt im Blockly machen könnte.
                              Dann würde ich mir den Zwischenschritt sparen.

                              liv-in-skyL 1 Reply Last reply
                              0
                              • F femi

                                @liv-in-sky
                                Ich könnte natürlich für jeden Sender eine Scriptdatei erstellen mit der ich dann die Befehle ausführe.
                                Aber es sind über 100 Sender, es wäre viel einfacher wenn ich das direkt im Blockly machen könnte.
                                Dann würde ich mir den Zwischenschritt sparen.

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                wrote on last edited by liv-in-sky
                                #15

                                @femi

                                leider kenne ich das gerät nicht, und verstehe gerade nicht, was das für scripte und commands sind.

                                dachte mir bei deinem letzten post: warum erzeugst du die scriptdateien nicht zuerst mit javascript , speicherst die und führst dann den exec aus

                                • ob das machbar bzw sinnvoll wäre, weiß ich nicht

                                ich glaube, ich kann dir hier keine große hilfe mehr sein

                                nochmal zum thema ssh2shell:

                                habe mit diesem script (und installierte ssh2shell im javascript-instanz setting !) vier befehle ausgeführt
                                "echo basic test success", "ls -la", "cd /usr/local/bin", "ls"

                                var SSH2Shell = require ('ssh2shell');
                                
                                
                                
                                var host = {
                                   //ssh2.client.connect options
                                   server: {     
                                 host:             "192.168.178.200",
                                 userName:     "root",
                                 password:     "password"
                                   },
                                   debug:          false,
                                
                                 commands: 	  ["echo basic test success", "ls -la", "cd /usr/local/bin", "ls"],
                                
                                };
                                
                                
                                
                                //run the commands in the shell session
                                var SSH = new SSH2Shell(host),
                                   callback = function( sessionText ){
                                         console.log ( "-----Callback session text:\n" + sessionText);
                                         console.log ( "-----Callback end" );
                                     }
                                
                                SSH.connect(callback)
                                
                                
                                
                                
                                

                                dieses zurückbekommen -

                                192.168.178.200: echo basic test success basic test success 
                                root@raspi4:~#ls -la 
                                insgesamt 102580 
                                drwx------ 8 root root 4096 Okt 5 16:05 . 
                                drwxr-xr-x 23 root root 4096 Okt 3 14:17 .. 
                                -rw------- 1 root root 3434 Okt 12 09:39 .bash_history 
                                -rw-r--r-- 1 root root 570 Mai 10 2020 .bashrc 
                                drwx------ 2 root root 4096 Aug 20 2020 .cache 
                                -rw-r--r-- 1 root root 103362808 Mr 11 2021 chromium-browser_88.0.4324.187-rpt1_armhf.deb 
                                -rw-r--r-- 1 root root 1616728 Mr 11 2021 chromium-codecs-ffmpeg-extra_88.0.4324.187-rpt1_armhf.deb 
                                drwx------ 6 root root 4096 Okt 5 14:22 .config 
                                drwx------ 3 root root 4096 Aug 28 2020 .gnupg 
                                drwxr-xr-x 3 root root 4096 Aug 27 2020 .local 
                                -rw-r--r-- 1 root root 148 Mai 10 2020 .profile 
                                -rw-r--r-- 1 root root 66 Aug 28 08:51 .selected_editor 
                                drwx------ 2 root root 4096 Okt 4 17:39 .ssh 
                                drwx------ 3 root root 4096 Aug 20 2020 .vnc 
                                -rw-r--r-- 1 root root 180 Okt 5 14:25 
                                .wget-hsts -rw------- 1 root root 0 Aug 28 2020 .Xauthority 
                                root@raspi4:~#cd /usr/local/bin 
                                root@raspi4:/usr/local/bin#ls pi-apps refreshChromeshutty 
                                root@raspi4:/usr/local/bin#
                                

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                1 Reply Last reply
                                0
                                • Marc_el_KM Offline
                                  Marc_el_KM Offline
                                  Marc_el_K
                                  wrote on last edited by
                                  #16

                                  Ich hänge mich an diesen Thread einmal an, mit folgender Frage

                                  Ich möchte in einem Blockly Script eine Javascript Funktion auslösen. Wie muss der Befehl den lauten, wenn ich den iobroker zuerst sicher stoppen möchte und danach sauber herunterfahren will? Es sollte sichergestellt sein, dass auch alle iobroker instanzen tatsächlich gestoppt sind.

                                  Würde mich über Unterstützung freuen 🙂

                                  var SSH = require('simple-ssh');
                                  var ssh = new SSH({
                                      host: 'IP...........',
                                      user: 'USER...............',
                                      pass: 'PASSWORT.........'
                                  });
                                  
                                  ssh.exec('iobroker stop').start();
                                  
                                  1 Reply Last reply
                                  0
                                  • Marc_el_KM Offline
                                    Marc_el_KM Offline
                                    Marc_el_K
                                    wrote on last edited by
                                    #17

                                    Ich habe es jetzt mit

                                    ssh.exec('sudo shutdown -h 2 && iobroker stop').start();
                                    

                                    gelöst. Gibt es noch eine Möglichkeit zu prüfen ob wirklich alles beendet wurde?

                                    OliverIOO 1 Reply Last reply
                                    0
                                    • Marc_el_KM Marc_el_K

                                      Ich habe es jetzt mit

                                      ssh.exec('sudo shutdown -h 2 && iobroker stop').start();
                                      

                                      gelöst. Gibt es noch eine Möglichkeit zu prüfen ob wirklich alles beendet wurde?

                                      OliverIOO Offline
                                      OliverIOO Offline
                                      OliverIO
                                      wrote on last edited by OliverIO
                                      #18

                                      @marc_el_k
                                      evtl andere reihenfolge?
                                      erst iobroker stop und dann shutdown?
                                      dürfte aber irrelevant sein, da shutdown normalerweise
                                      an alle prozesse ein signal sendet, das sie sich beenden sollen.
                                      dann haben die eine gewisse zeit, wenn die überschritten ist, wird dann gewaltsam abgebrochen.
                                      wenn nur shutdow keine probleme macht, dann reicht das.
                                      ansonsten iobroker stop, dann noch ein wait für eine gewisse zeit und dann ein shutdown

                                      nachtrag
                                      ah, die parameter waren mir jetztr nicht bewusst. das shutdown -h 2 bewirkt ja das er erst in 2 minuten ausgeführt wird. dann passt das

                                      Meine Adapter und Widgets
                                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                      Links im Profil

                                      Marc_el_KM 1 Reply Last reply
                                      0
                                      • OliverIOO OliverIO

                                        @marc_el_k
                                        evtl andere reihenfolge?
                                        erst iobroker stop und dann shutdown?
                                        dürfte aber irrelevant sein, da shutdown normalerweise
                                        an alle prozesse ein signal sendet, das sie sich beenden sollen.
                                        dann haben die eine gewisse zeit, wenn die überschritten ist, wird dann gewaltsam abgebrochen.
                                        wenn nur shutdow keine probleme macht, dann reicht das.
                                        ansonsten iobroker stop, dann noch ein wait für eine gewisse zeit und dann ein shutdown

                                        nachtrag
                                        ah, die parameter waren mir jetztr nicht bewusst. das shutdown -h 2 bewirkt ja das er erst in 2 minuten ausgeführt wird. dann passt das

                                        Marc_el_KM Offline
                                        Marc_el_KM Offline
                                        Marc_el_K
                                        wrote on last edited by
                                        #19

                                        @oliverio sagte in simple-ssh mehrere Befehle senden:

                                        evtl andere reihenfolge?

                                        Ich habe das Problem, dass wenn ich zuerst den iobroker stoppe, dass dann keine Befehle mehr ankommen.

                                        Mir stellt sich nur noch die Frage, ob man eine Abfrage machen kann, dass der iobroker auch vollständig beendet wurde?

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        603

                                        Online

                                        32.4k

                                        Users

                                        81.3k

                                        Topics

                                        1.3m

                                        Posts
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Recent
                                        • Tags
                                        • Unread 0
                                        • Categories
                                        • Unreplied
                                        • Popular
                                        • GitHub
                                        • Docu
                                        • Hilfe