checkms README.md first commit

This commit is contained in:
ljp
2025-09-09 15:06:51 +02:00
parent 4d6bb59fde
commit d9c8421b3f
+156
View File
@@ -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 <gitea-url>/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 <ssh_user>@logger.in.nessus.at` verbunden.
- Die Config kann beliebig viele Codes enthalten, Regex wird unterstützt.