# 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.