NEWS
Shellausgabe formatieren
-
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?
-
@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.
-
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. -
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.
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.