Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] Problem mit simple-ssh zur synology

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Problem mit simple-ssh zur synology

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      alka last edited by alka

      leider funktioniert bei mir folgender code nicht, als Ausgabe erhalte ich nur mein log(), keinen Fehler (habe den code hier aus dem Forum, dort scheint es zu funktionieren)
      Systemstand:
      iobroker im Docker auf Synology(ssh aktiv)
      Node.js v14.19.2
      Javascript 5.2.21
      im Adapter ist simple-ssh als Zusatz und exec erlauben aktiv

      const simpleSSH = require('simple-ssh');  
      var SSH2 = require('simple-ssh'); 
      var ssh = new SSH2({
        host: '192.168.2.15',
         port:'22',
         user: 'root',
         pass: 'xxxxxx'
      
      });
      on({id: "0_userdata.0.Systeminfos.docker_restart2", change: 'ne', val: true }, function (obj) {
          log ("--> Neustart container");
          setState('0_userdata.0.Systeminfos.docker_restart', false);
          ssh.exec('/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container version=1 method=restart name=ct1', {
      
              out: function(stdout) {
                  log(stdout);
              }
      
          }).start();
      
          });
      

      kann mir da jemand weiterhelfen?

      Glasfaser A 2 Replies Last reply Reply Quote 0
      • Glasfaser
        Glasfaser @alka last edited by Glasfaser

        @alka sagte in Problem mit simple-ssh zur synology:

        (habe den code hier aus dem Forum, dort scheint es zu funktionieren)

        Wäre auch von Vorteil woher ... Link !?

        Versuche mal hiermit :

        https://forum.iobroker.net/topic/40916/docker-container-restart-iobroker-per-script/23

        EDIT :

        ich sehe gerade selber , du bist der Themenstarten vom Thread !? :

        Docker Container restart iobroker per script

        A 1 Reply Last reply Reply Quote 0
        • A
          alka @Glasfaser last edited by alka

          @glasfaser sagte in Problem mit simple-ssh zur synology:

          Versuche mal hiermit :

          jo, genau dieses war es wo ich es herhatte, war nur in einem anderen thread ziziert (aber Verfasser ebenso //Glasfaser 17.01.2021

          edit
          "Docker Container restart iobroker per script"
          da ist das Thema ein komplett anderes geworden ....

          edit2

          ach jetzt sehe ich, du selbst bist es der das script bereitgestellt hat 👍

          Glasfaser 1 Reply Last reply Reply Quote 0
          • Glasfaser
            Glasfaser @alka last edited by

            @alka sagte in Problem mit simple-ssh zur synology:

            ach jetzt sehe ich, du selbst bist es der das script bereitgestellt hat

            ... aber das Script von dir ist anders

            new SSH2({
            port:'22',

            1 Reply Last reply Reply Quote 0
            • A
              alka @alka last edited by alka

              @alka

              stümmt 😉

              hatte ich verrbastelt als ich viele Variationen und ein anderes script probiert hatte, funktioniert aber leider mit SSH ohne 2 auch nicht und gibt nichts aus

              u.a. so:

                      ssh.exec('echo "/usr/bin/synowebapi --exec api=SYNO.Docker.Container version=1 method=restart name=ct1"',{
                          err: (err) => {
                                  log('SSH Error:', err);
                              },
                          exit: () => {
                              //cb && cb();
                              log('SSH  exit');
                          }
                      }).start();
              
                  } catch (e) {
                      log('--- SSH Error ', e);
                  } 
              });
              

              Nachtrag
              nun, da ich eine Weile das script nicht mehr gestartet hatte, die syno in Ruhe war und ich wieder von SSH2 auf SSH geändert und sicherheitshalber probiert habe, ist zumindest die syno Plattenerweiterung geweckt worden (was bedeutet dass irgendein Zugriff dort angekommen ist) - und vergessen: syno mit DSM 7.0.1

              Glasfaser 1 Reply Last reply Reply Quote 0
              • Glasfaser
                Glasfaser @alka last edited by Glasfaser

                @alka sagte in Problem mit simple-ssh zur synology:

                und vergessen: syno mit DSM 7.0.1

                Das macht nichts ...

                Melde in der Syn an als root

                dann den kompletten Befehl absenden :

                /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container version=1 method=restart name=ct1
                

                danach kommt / sollte kommen und der Container startet neu .

                [Line 285] Exec WebAPI:  api=SYNO.Docker.Container, version=1, method=restart, param={"name":"ct1"}, runner=
                {
                   "data" : {
                      "cpu" : 0,
                      "memory" : 28635136,
                      "memoryPercent" : 0.17224828898906708,
                      "name" : "ct1"
                   },
                   "httpd_restart" : false,
                   "success" : true
                }
                
                
                A 1 Reply Last reply Reply Quote 0
                • A
                  alka @Glasfaser last edited by alka

                  @glasfaser
                  mit root erhalte ich keinen Zugriff, was wohl seit DSM 7.x auch so gedacht ist

                  edit
                  sooo - root geht nur noch per key hab ich grad gelesen

                  damin-konto aber permission denied, muss mal suchen wie ich die pfad-rechte setzen muss

                  Glasfaser A 2 Replies Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @alka last edited by Glasfaser

                    @alka sagte in Problem mit simple-ssh zur synology:

                    mit root erhalte ich keinen Zugriff, was wohl seit DSM 7.x auch so gedacht ist

                    Wo steht dass denn ,
                    es geht nur darum das der Standart Nutzer ( mit Rechten / Administrator ) Admin heißt und den sollte man ändern/ ausschalten .

                    Da wurde noch nie was ausgeschaltet :
                    EDIT:

                    login as: root
                    root@xxxx.xxx.xxx.xx's password:
                    
                    Synology strongly advises you not to run commands as the root user, who has
                    the highest privileges on the system. Doing so may cause major damages
                    to the system. Please note that if you choose to proceed, all consequences are
                    at your own risk.
                    
                    root@xxxx:~#
                    
                    1 Reply Last reply Reply Quote 0
                    • A
                      alka @alka last edited by alka

                      @alka
                      hmh, dann verbocke ich hier was - Permission denied, please try again.

                      habe pw nochmal neu gesetzt (denke ich mal) und neu gestartet, kein Zugriff
                      ch57@Diskstation716:/$ sudo -i
                      Password:
                      root@Diskstation716:~# synouser -setpw root xxxx

                      edit:
                      egal was ich versuche, root anmelden wird verweigert
                      nach admin und sudo kann ich den restart problemlos ausführen lassen

                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @alka last edited by

                        @alka

                        Ich habe gerade keine Idee .... woran es bei dir liegt .

                        1 Reply Last reply Reply Quote 0
                        • A
                          alka last edited by alka

                          @glasfaser

                          habe reichlich Versuche gefahren, ändert nichts
                          lässt sich sudo in den exec-Befehl einbauen und damit die admin-anmeldung nutzen?

                          oder per chmod die Datei zum Ausführen für admin-Gruppe verfügbar machen?

                          Glasfaser A 2 Replies Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @alka last edited by

                            @alka sagte in Problem mit simple-ssh zur synology:

                            lässt sich sudo in den exec-Befehl einbauen und damit die admin-anmeldung nutzen?

                            Es wird dann aber nach dem Sudo Befehl das Passwort von root gefragt , wie man das übergibt kann ich dir nicht ( im Moment ) sagen .

                            1 Reply Last reply Reply Quote 0
                            • A
                              alka @alka last edited by alka

                              @alka
                              auch wahr, hatte ich nicht bedacht

                              chmod für die Datei geht auch nicht? für admins ausführbar?

                              Glasfaser 2 Replies Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @alka last edited by

                                @alka

                                Wäre ungefähr so

                                echo -e "Password"  | sudo ...........
                                
                                1 Reply Last reply Reply Quote 0
                                • Glasfaser
                                  Glasfaser @alka last edited by Glasfaser

                                  @alka

                                  Hier das komplette Script , gerade mit portainer getestet :

                                  //Glasfaser  17.01.2021
                                  //Glasfaser  08.05.2022 echo -e Passwort hinzugefügt 
                                  //https://forum.iobroker.net/topic/40916/docker-container-restart-iobroker-per-script
                                  //https://forum.iobroker.net/topic/54782/problem-mit-simple-ssh-zur-synology/15
                                  //Synology Docker Container von ioBroker aus neustarten 
                                  //Im JS Adapter zusätzliche NPM-Module, den Eintrag: simple-ssh
                                  //im SSH Befehl name=iobroker : auf dein Containernamen ändern 
                                  // bei echo -e Passwort , Passwort anpassen
                                   
                                  
                                  
                                  on({id: "0_userdata.0.Test123", change: 'ne', val: true }, function (obj) {
                                   
                                  
                                  log ("--> Neustart Docker gestartet!");
                                  
                                  console.log('+++ Neustart Docker +++');
                                  
                                    setState('0_userdata.0.Test123', false);
                                  
                                    
                                  
                                  var SSH = require('simple-ssh');
                                  
                                  
                                  var ssh = new SSH({
                                  
                                     host: 'xxx.xxx.xxx.xxx',
                                  
                                     user: 'User',
                                  
                                     pass: 'Passwort'
                                  
                                  });
                                  
                                  
                                  ssh.exec('echo -e Passwort  | sudo -S /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container version=1 method=restart name=portainer', {
                                  
                                     out: function(stdout) {
                                  
                                         console.log(stdout);
                                  
                                         
                                  
                                   
                                  
                                     }
                                  
                                  }).start();
                                  
                                   
                                  
                                  }
                                  
                                  );
                                  

                                  das kommt dazu , wie ich schon oben geschrieben habe :

                                  echo -e Passwort  | sudo -S
                                  

                                  dann kommt im ioBroker Log auch :.

                                  2022-05-08 19:57:38.296 - info: javascript.0 (462) script.js.Synology.Docker_Neustart: {
                                  "data" : {
                                  "cpu" : 0,
                                  "memory" : 28975104,
                                  "memoryPercent" : 0.17429329454898834,
                                  "name" : "portainer"
                                  },
                                  "httpd_restart" : false,
                                  "success" : true
                                  }
                                  
                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    alka @Glasfaser last edited by alka

                                    @glasfaser

                                    dickes dankeschön dafür, noch dazu am So!

                                    habe es komplett übernommen, meine Variablen eingetragen - leider nix
                                    kann aber inzwischen daran liegen, das die Firewall der syno dicht gemacht hat wegen zu vieler Zugriffe, muss mich jetzt um Familie kümmern und setz mich die nächsten Tage noch mal dran

                                    Nachtrag:
                                    konnte es nicht lassen da nochmal bei zu gehen - es funktioniert!👍
                                    nochmals ein ganz liebes dankeschön dafür!

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    814
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    2
                                    16
                                    669
                                    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