Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. simple-ssh mehrere Befehle senden

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    simple-ssh mehrere Befehle senden

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      femi @liv-in-sky last edited by femi

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

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @femi last edited by

        @femi

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

        F 1 Reply Last reply Reply Quote 0
        • F
          femi @liv-in-sky last edited by

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

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @femi last edited by

            @femi

            kann diese nom node helfen ?

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

            F 1 Reply Last reply Reply Quote 0
            • F
              femi @liv-in-sky last edited by

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

              liv-in-sky 1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @femi last edited by

                @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 1 Reply Last reply Reply Quote 0
                • liv-in-sky
                  liv-in-sky @femi last edited by

                  @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 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @femi last edited by

                    @femi

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

                    1 Reply Last reply Reply Quote 0
                    • F
                      femi @AlCalzone last edited by

                      @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 Reply Quote 0
                      • F
                        femi @liv-in-sky last edited by

                        @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-sky 1 Reply Last reply Reply Quote 0
                        • liv-in-sky
                          liv-in-sky @femi last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • F
                            femi @liv-in-sky last edited by

                            @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-sky 1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky @femi last edited by liv-in-sky

                              @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#
                              
                              1 Reply Last reply Reply Quote 0
                              • Marc_el_K
                                Marc_el_K last edited by

                                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 Reply Quote 0
                                • Marc_el_K
                                  Marc_el_K last edited by

                                  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?

                                  OliverIO 1 Reply Last reply Reply Quote 0
                                  • OliverIO
                                    OliverIO @Marc_el_K last edited by 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_K 1 Reply Last reply Reply Quote 0
                                    • Marc_el_K
                                      Marc_el_K @OliverIO last edited by

                                      @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 Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      1.1k
                                      Online

                                      31.7k
                                      Users

                                      79.7k
                                      Topics

                                      1.3m
                                      Posts

                                      5
                                      19
                                      1084
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo