Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. simple-ssh mehrere Befehle senden

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    830

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

simple-ssh mehrere Befehle senden

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 Beiträge 5 Kommentatoren 1.5k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • liv-in-skyL liv-in-sky

    @femi

    geht es mit && anstatt ;

    F Offline
    F Offline
    femi
    schrieb am zuletzt editiert von femi
    #3

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

    liv-in-skyL 1 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #5

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

        liv-in-skyL 1 Antwort Letzte Antwort
        0
        • F femi

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

          liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #7

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

            liv-in-skyL 1 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von
                        #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 Antwort Letzte Antwort
                        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
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                            0
                            • Marc_el_KM Offline
                              Marc_el_KM Offline
                              Marc_el_K
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              0
                              • Marc_el_KM Offline
                                Marc_el_KM Offline
                                Marc_el_K
                                schrieb am zuletzt editiert von
                                #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 Antwort Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                  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
                                    schrieb am zuletzt editiert von
                                    #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 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    454

                                    Online

                                    32.6k

                                    Benutzer

                                    82.1k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe