From d9c8421b3f04e7f6d559acd7d3f6a5f89dd7615e Mon Sep 17 00:00:00 2001 From: pljubeko Date: Tue, 9 Sep 2025 15:06:51 +0200 Subject: [PATCH] checkms README.md first commit --- legacy/checkms/README.md | 156 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 legacy/checkms/README.md diff --git a/legacy/checkms/README.md b/legacy/checkms/README.md new file mode 100644 index 0000000..2e3b53d --- /dev/null +++ b/legacy/checkms/README.md @@ -0,0 +1,156 @@ +# checkms + +`checkms` ist ein Bash-Skript zur Analyse von **Microsoft-spezifischen SMTP Fehlercodes** (z. B. S3150, S775, S7771…) in den Exim-Logs auf dem **easyname Logger**. +Neben der Auswertung kann das Skript auch die Konfiguration (Fehlercodes, SSH-User) verwalten. + +--- + +## Features + +- Zugriff auf den Logger (via `go logger` oder SSH) +- Auswertung von Exim-Logs für Microsoft Fehlercodes +- Unterstützung für **gzip-archivierte Logs** +- Filterung nach Zeitfenstern (`--minutes`, `--hours`) +- Konfiguration in `checkms.conf` + - SSH-User + - Liste der Fehlercodes (Regex möglich) +- Verwaltung der Config per Script: + - `--add-code` → Code hinzufügen + - `--del-code` → Code anhand ID löschen + - `--set-user` → SSH-User ändern + - `--show-config` → Config anzeigen (JSON + tabellarisch) + +--- + +## Installation + +1. Repository klonen: + ```bash + git clone /esn-support-bash-snippets.git + cd esn-support-bash-snippets/legacy/checkms + chmod +x checkms + ``` + +2. Beim ersten Start erstellt `checkms` automatisch die Konfiguration unter: + ``` + ~/.config/checkms/checkms.conf + ``` + +3. Abhängigkeiten: + - `jq` (empfohlen, für Bearbeitung/Schreiben der Config) + - `ssh` Zugriff auf Logger (`go logger` wird bevorzugt, falls vorhanden) + +--- + +## Nutzung + +### Standardanalyse +```bash +./checkms +``` +→ analysiert das heutige Logfile komplett. + +### Tageslog +```bash +./checkms 2025-09-08 +``` +→ analysiert das Logfile vom 08.09.2025 +(automatisch `.log` oder `.log.gz`). + +### Zeitfenster +```bash +./checkms --minutes 30 # letzte 30 Minuten +./checkms --hours 2 # letzte 2 Stunden +``` + +--- + +## Config-Management + +### Aktuelle Config ansehen +```bash +./checkms --show-config +``` + +Beispielausgabe: +``` +RAW (~/.config/checkms/checkms.conf): +{ + "ssh_user": "pljubeko", + "codes": [ + "S3150", + "S775", + "S7771[0-9]*" + ] +} + +TABELLARISCHE ANSICHT: +SSH_USER pljubeko + +ID CODE +---- ---------------- +0 S3150 +1 S775 +2 S7771[0-9]* +``` + +### SSH-User ändern +```bash +./checkms --set-user alice --show-config +``` + +### Code hinzufügen +```bash +./checkms --add-code S77714 +./checkms --add-code 'S77[0-9]{3}' --show-config +``` + +### Code löschen +```bash +./checkms --del-code 2 --show-config +``` +→ löscht den Code mit ID `2` (siehe `--show-config`). + +--- + +## Optionen + +``` +Usage: ./checkms [OPTIONS] [YYYY-MM-DD] + +Analyse von MS-Fehlercodes im Exim-Log und Pflege der Codes. + +Analyse-Optionen: + --minutes N Analysiert nur die letzten N Minuten + --hours N Analysiert nur die letzten N Stunden + --confdir PATH Pfad zum Konfigurationsordner (Default: ~/.config/checkms) + +Konfig-Optionen: + --add-code REGEX Fügt einen Code/Regex zur Config hinzu (mehrfach möglich) + --del-code ID Löscht Code mit ID (siehe --show-config) + --set-user USER Setzt den SSH-User in der Config + --show-config Zeigt die aktuelle Config (JSON + tabellarisch) und beendet + --help Diese Hilfe +``` + +--- + +## Beispielausgabe Analyse + +``` +Analysiere 2025-09-09.log + +COUNT IP CODE +----- ---------------- ------ +67435 212.232.25.164 S775 +63930 212.232.28.125 S775 + 311 217.74.15.3 S3150 +``` + +--- + +## Notes + +- Falls Logs älter sind, werden sie automatisch mit `zcat` gelesen (`.log.gz`). +- Falls `go logger` als Funktion existiert, nutzt das Skript diese. Sonst wird via `ssh @logger.in.nessus.at` verbunden. +- Die Config kann beliebig viele Codes enthalten, Regex wird unterstützt.