Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Shellausgabe formatieren

    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

    Shellausgabe formatieren

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

      Hallo,

      heute melde ich mich mit einem kleinen Blocklroblem.

      Ich würde gerne folgenden Text zerlegen:

      docker@docker:~# fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status
      
      
      
      Status for the jail: npm-3xx-4xx
      |- Filter                                              |  |- Currently failed: 0
      |  |- Total failed:     42                             |  `- File list:        /data/compose/2/data/logs/proxy-host-2_access.log /data/compose/2/data/logs/proxy-host-1_access.log /data/compose/2/data/logs/proxy-host-1_error.log /data/compose/2/data/logs/proxy-host-2_error.log
      `- Actions
         |- Currently banned: 0                                 |- Total banned:     6
         `- Banned IP list:
      Status for the jail: sshd
      |- Filter
      |  |- Currently failed: 0
      |  |- Total failed:     0
      |  `- File list:        /var/log/auth.log
      `- Actions
         |- Currently banned: 0
         |- Total banned:     0
         `- Banned IP list:
      root@docker:~#
      

      Ich möchte mit eine html Tabelle mit den Daten erstellen. Dafür brauche ich eine Schleife, die mir in jedem Durchgang den Name des Jails, und die Werte des Filters und der Action liefert.

      Hat jemand eine Idee?

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        @david-g die einfachste Strategie wenn die Ausgabe immer gleich viele Zeilen hat, ist sicher den String immer am Zeilenumbruch zu trennen so das am Ende jede Zeile eine Array (Liste) Element ist. Die Funktion heist "Liste aus Text". Anschließend kann man das Element auswählen das man haben möchte und den Überflüssigen Text entfernen, diee Funktion müsste Replace Text heisen.

        David G. 1 Reply Last reply Reply Quote 0
        • David G.
          David G. @Jey Cee last edited by David G.

          @jey-cee

          Ich glaube, die "banned IP list" geht über mehrezeilen.

          Probiere das mal zu testen.
          Muss mich mal mobil und über WLAN aussperren.
          Das müsste klappen.

          EDIT
          Die IPs werden wohl am Stück weggeschrieben:

          docker@docker:~# fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status
          Status for the jail: npm-3xx-4xx
          |- Filter                                              |  |- Currently failed: 0
          |  |- Total failed:     52                             |  `- File list:        /data/compose/2/data/logs/proxy-host-2_access.log /data/compose/2/data/logs/proxy-host-1_access.log /data/compose/2/data/logs/proxy-host-1_error.log /data/compose/2/data/logs/proxy-host-2_error.log
          `- Actions
             |- Currently banned: 2                                 |- Total banned:     8
             `- Banned IP list:   80.187.119.205 87.177.18.72
          Status for the jail: sshd
          |- Filter
          |  |- Currently failed: 0
          |  |- Total failed:     0
          |  `- File list:        /var/log/auth.log
          `- Actions
             |- Currently banned: 0
          root@docker:~# fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status
          Status for the jail: npm-3xx-4xx
          |- Filter
          |  |- Currently failed: 0
          |  |- Total failed:     52
          |  `- File list:        /data/compose/2/data/logs/proxy-host-2_access.log /data/compose/2/data/logs/proxy-host-1_access.log /data/compose/2/data/logs/proxy-host-1_error.log /data/compose/2/data/logs/proxy-host-2_error.log
          `- Actions
             |- Currently banned: 2
             |- Total banned:     8
             `- Banned IP list:   80.187.119.205 87.177.18.72
          Status for the jail: sshd
          |- Filter
          |  |- Currently failed: 0
          |  |- Total failed:     0
          |  `- File list:        /var/log/auth.log
          `- Actions
             |- Currently banned: 0
             |- Total banned:     0
             `- Banned IP list:
          root@docker:~#
          

          Edit
          Die Idee mit den Zeilen ist gut.
          Nur wie mache ich das? Bei Liste aus Text muss ich ja ein Trennzeichen angeben.

          So gibt es nur ein Listenobjekt.
          ![Screenshot_20240816_131537_Chrome.jpg](/assets/uploads/files/1723806974564-screenshoNur 0240816_131537_chrome.jpg)

          Edit 2
          Wenn ich den DP im Log ausgeben lasse, fehlen die Zeilenumbrüche, wenn ich den Text aus dem DP kopiere, sind sie da.

          Die Daten kommen aus Linux-Control.

          EDIT 3
          Bin jetzt weiter.

          Habe den Shellbefehl so angepasst, dass an jedem Zeilenende ein * steht. Jetzt kann ich das schon trennen.
          Dann nimm Text ab : +1.
          Dann habe ich die Werte.

          Nun habe ich ein anderes Problem.
          Ich möchte ja jedes Jail separat bearbeiten/durchlaufen.

          Die Liste hat 18 Positionen, also 9 pro Jail.

          Der Weg den ich jetzt habe (nur der Funktionsablauf) ist glaube sehr umständlich und geht viel leichter...
          Nur läuft das Blockly nicht, sobald ich am Rande die Wiederholung habe um die ersten 9 Positionen zu löschen.

          1 Reply Last reply Reply Quote 0
          • David G.
            David G. last edited by David G.

            Jetzt habe ich es glaube ich.
            Auch wenn mich der letzte falls Block was stört um die NaN Zeilen zu entfernen.

            Da wäre ein Block schön wie "falls Zahl" oder so.

            Screenshot_20240816_174149_Chrome.jpg

            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: npm-3xx-4xx
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 0
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 52
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 0
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 8
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: sshd
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 0
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 2
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 0
            javascript.0	17:41:53.964	info	script.js.Eigene_Scripte.VIS.Tabelle_fail2ban: 0
            

            Edit
            Im groben steht die Tabelle.

            Die Anzahl der Jails wird dynamisch ermittelt für die Zeilen.

            Screenshot_20240828_165832_Fully Kiosk Browser.jpg

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

            Support us

            ioBroker
            Community Adapters
            Donate

            562
            Online

            31.9k
            Users

            80.2k
            Topics

            1.3m
            Posts

            2
            4
            218
            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