checkms README.md first commit
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user