Compare commits

...
5 Commits
15 changed files with 557 additions and 3 deletions
+6 -1
View File
@@ -54,7 +54,12 @@ Optimierte Bash-Konfigurationen für verschiedene Support-Umgebungen:
Dieses Skript stellt eine SSH-Verbindung zu einem angegebenen Webserver her und generiert so einen einmaligen Login-Link für das Plesk Admin Panel des gewünschten Servers. Dieses Skript stellt eine SSH-Verbindung zu einem angegebenen Webserver her und generiert so einen einmaligen Login-Link für das Plesk Admin Panel des gewünschten Servers.
- [`wh20`](./wh20) - [`wh20`](./wh20)
Dieses Skript verbindet zum angegbenen Webserver via SSH Dieses Skript verbindet zum angegbenen Webserver via SSH
- [`adspam`](./adspam)
Dieses Skript ermöglicht die Prüfung auf geläufige MS365- und Spamhaus-Fehlermeldungen auf Adino-Servern direkt von der Connect aus.
- [`donaspam`](./donaspam)
Dieses Skript ermöglicht die Prüfung auf geläufige MS365- und Spamhaus-Fehlermeldungen auf inname-Servern direkt von der Connect aus.
- [`spamcheck`](./spamcheck)
Dieses Skript ermöglicht die Prüfung auf geläufige MS365- und Spamhaus-Fehlermeldungen auf einem Plesk-Server.
--- ---
## Quick Start ## Quick Start
+1
View File
@@ -213,6 +213,7 @@ $REMOTE bash -s <<EOF
exit 1 exit 1
fi fi
echo "⚠️ Starte checkms für $DATE"
echo "Analysiere $LOGFILE" echo "Analysiere $LOGFILE"
echo echo
printf "%-8s %-16s %-8s\n" "COUNT" "IP" "CODE" printf "%-8s %-16s %-8s\n" "COUNT" "IP" "CODE"
+1 -1
View File
@@ -24,7 +24,7 @@ Beispiele:
Serverliste: Serverliste:
Legacy-Server 01..26, 107, 114, 119, 501..532 Legacy-Server 01..26, 107, 114, 119, 501..532
WH20-Server 1..25 WH20-Server 1..25
Adino-Server 244, 251..252, 268, 272 Adino-Server 212 237 244 251 252 268 272 279 280 285 307 327 353 358 395
inname-Server 20..30 inname-Server 20..30
USAGE USAGE
} }
+12 -1
View File
@@ -20,12 +20,23 @@ Die Dokumentationen werden in Unterordnern zu den jeweiligen Skripten gepflegt.
### [`plesk`](./plesk) ### [`plesk`](./plesk)
Dieses Skript stellt eine SSH-Verbindung zu einem angegebenen Webserver her und generiert so einen einmaligen Login-Link für das Plesk Admin Panel des gewünschten Servers. Dieses Skript stellt eine SSH-Verbindung zu einem angegebenen Webserver her und generiert so einen einmaligen Login-Link für das Plesk Admin Panel des gewünschten Servers.
- [Dokumentation & Beispiele](./plesk/README.md)
### [`wh20`](./wh20) ### [`wh20`](./wh20)
Dieses Skript verbindet zum angegbenen Webserver via SSH Dieses Skript verbindet zum angegbenen Webserver via SSH
- [Dokumentation & Beispiele](./wh20/README.md)
- [Dokumentation & Beispiele](./plesk/README.md) ### [`spamcheck`](./spamcheck)
Dieses Skript ermöglicht den schnellen Check nach MS365-Fehlercodes, sowie für Spamhaus-Blockmeldungen.
- [Dokumentation & Beispiele](./spamcheck/README.md)
### [`adspam`](./adspam)
Dieses Skript ermöglicht den schnellen Check nach MS365-Fehlercodes, sowie für Spamhaus-Blockmeldungen auf Adino-Server direkt von der Connect aus.
- [Dokumentation & Beispiele](./adspam/README.md)
### [`donaspam`](./donaspam)
Dieses Skript ermöglicht den schnellen Check nach MS365-Fehlercodes, sowie für Spamhaus-Blockmeldungen auf DONA-Server direkt von der Connect aus.
- [Dokumentation & Beispiele](./donaspam/README.md)
## Lizenz / Sichtbarkeit ## Lizenz / Sichtbarkeit
+64
View File
@@ -0,0 +1,64 @@
# adspam - schneller Spamcheck für MS365 und Spamhaus auf Adino-Server
## Funktion
Dieses Skript führt am jeweiligen adino-Host ein grep für geläufige MS365-Fehlercodes sowie Spamhaus auf /var/log/maillog durch und gibt die Anzahl der Treffer für dieses an.
Sofern keine Ergebnisse für den jeweiligen Tag gefunden werden, werden nur die Beginn- und Endzeile des Checks ausgegeben.
## Voraussetzungen
- SSH-Zugriff auf den Zielserver
- Das [`spamcheck`](../spamcheck/spamcheck.sh)-Skript muss auf den Zielservern installiert und ausführbar sein.
- Das [`adspam`](./adspam.sh)-Skript ist korrekt auf der connect installiert und ausführbar.
## Installation
```bash
cd
mkdir bin && cd bin
vi adspam
chmod +x adspam
```
## Verwendung
```bash
USER@connect-lej ~ $ adspam
```
## Syntax
```bash
adspam
```
## Beispiele
```bash
# Von der Connect aus abgesetzt.
USER@connect-lej ~ $ adspam
=== Todays Spamcheck on Wed Apr 15 13:13:22 CEST 2026 ===
=== srv244.adino.at Spamcheck ===
✅ All systems green.
=== srv251.adino.at Spamcheck ===
✅ All systems green.
=== srv252.adino.at Spamcheck ===
✅ All systems green.
=== srv268.adino.at Spamcheck ===
✅ All systems green.
=== srv272.adino.at Spamcheck ===
✅ All systems green.
```
## Troubleshooting
# zu hohe Anzahl an S3150
Am jeweiligen adino-Webserver prüfen durch gezieltes grep nach `S3150`, ob es sich hierbei um einen anderen String handelt, da Plesk leider auch den String verwendet. -->
```bash
sudo grep -F 'S3150' /var/log/maillog
```
---
*Maintainer: peignerpausz*
+9
View File
@@ -0,0 +1,9 @@
#! /usr/bin/env bash
# Automatisierter Spamcheck für MS365 error-codes und Spamhaus rejections auf Adino-Server
# Maintainer: peignerpausz
printf '⚠️ Initiating Spamcheck for adino-servers! ⚠️ \n \n'
for a in 244 251 252 268 272
do ssh srv$a.adino.at -- bash -lc '~/bin/spamcheck'
done
echo
+144
View File
@@ -0,0 +1,144 @@
# damagereport - 📬 your daily dose of mail-damage
Kurzbeschreibung des Skripts:
![Damage Report Picard](https://i.imgflip.com/1hdas2.jpg)
Am besten in die .bashrc packen, damit es bei jedem Systemstart einem Schlecht wird. 🥴
---
## Features
- Kombinierte Abfrage von checkms, adspam und donaspam
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone <gitea-url>/esn-support-bash-snippets.git
cd esn-support-bash-snippets/wh20/damagereport.sh
chmod +x damagereport.sh
```
2. Abhängigkeiten installieren:
- [`checkms`](../../legacy/checkms/checkms.sh)
- [`adspam`](../adspam/adspam.sh)
- [`donaspam`](../donaspam/donaspam.sh)
- [`spamcheck`](../spamcheck/spamcheck.sh) --> muss auf jedem zu prüfenden Server unter `~/bin/spamcheck` hinterlegt sein. Siehe [Serverliste](./serverliste.md)
---
## Nutzung
### Standardaufruf
```bash
./damagereport.sh
```
### Beispiele
```bash
./damagereport.sh
./damagereport.sh 2025-09-08 # Variable Logabfrage muss erst in adspam, donaspam und spamcheck implementiert werden
```
---
## Optionen
```bash
Usage: ./damagereport.sh [OPTIONS]
--help Zeigt diese Hilfe
--option Beispieloption
YYYY-MM-DD Beispiel für Datumsargument
```
---
## Beispielausgabe
```bash
eign01@connect-lej ~ $ damagereport
Bridge, give me Fri Apr 17 12:49:51 CEST 2026 damagereport!
🚨 Initiating damagereport for mailservices!
Starte checkms fuer 2026-04-17
Analysiere 2026-04-17.log
COUNT IP CODE
----- ---------------- ------
⚠️ Initiating Spamcheck for adino-servrs ⚠️
🚀 srv212.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv237.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv244.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv251.adino.at Spamcheck 🛠️
❌ Anzahl S7772: 6
🚀 srv252.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv268.adino.at Spamcheck 🛠️
❌ Anzahl S7772: 6
🚀 srv272.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv279.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv280.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv285.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv307.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv327.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv353.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv358.adino.at Spamcheck 🛠️
✅ All systems green.
🚀 srv395.adino.at Spamcheck 🛠️
✅ All systems green.
⚠️ Initiating spamcheck on inname-servers
=== ws20.inname.net Spamcheck ===
✅ All systems green.
=== ws21.inname.net Spamcheck ===
✅ All systems green.
=== ws22.inname.net Spamcheck ===
✅ All systems green.
=== ws23.inname.net Spamcheck ===
✅ All systems green.
=== ws24.inname.net Spamcheck ===
✅ All systems green.
=== ws25.inname.net Spamcheck ===
✅ All systems green.
=== ws26.inname.net Spamcheck ===
✅ All systems green.
=== ws27.inname.net Spamcheck ===
❌ Anzahl S3150: 5
=== ws28.inname.net Spamcheck ===
✅ All systems green.
=== ws29.inname.net Spamcheck ===
✅ All systems green.
=== ws30.inname.net Spamcheck ===
✅ All systems green.
```
---
## Setup-Hinweise
Falls notwendig, Alias in `~/.bashrc` setzen:
```bash
alias damagereport='~/pfad/zum/repo/wh20/damagereport/damagereport.sh'
```
---
## Notes
- Derzeit kombiniert dieses Skript wirklich nur die Standardausgaben von checkms, adspam und donaspam in einen zusammenhängenden Bericht.
- ToDos
- `spamcheck` - und damit `adspam` und `donaspam` - auch auf andere Logs als `/var/log/maillog` zugreifen lassen
+26
View File
@@ -0,0 +1,26 @@
#! /usr/bin/env bash
# Damagereport - kombinierte Ausgabe von checkms, adspam und donaspam
# Maintainer: peignerpausz
# --- Funktionen ---
usage() {
cat <<USAGE
Usage: $0 [OPTIONS] [YYYY-MM-DD]
kombinierte Ausgabe von checkms, adspam und donaspam
Konfig-Optionen:
--help Diese Hilfe
USAGE
}
# --- Argumente parsen ---
while [[ $# -gt 0 ]]; do
case "$1" in
--help) usage; exit 0 ;;
*) echo "Unbekannte Option: $1" >&2; usage; exit 1 ;;
esac
done
printf "Bridge, give me %s damagereport! \n \n" "$(date)"
printf "⚠️ Initiating damagereport for our mailservers! \n"
bash ~/bin/checkms && ~/bin/adspam && ~/bin/donaspam
+47
View File
@@ -0,0 +1,47 @@
# Serverliste
# Legacy-Server
![The good stuff](https://media.npr.org/assets/img/2023/05/26/honest-work-meme-c7034f8bd7b11467e1bfbe14b87a5f6a14a5274b.jpg)
- web01.in.easyname.com..web26.in.easyname.com
- web107
- web114
- web119
- web501.in.easyname.com..web532.in.easyname.com
# WH20-Server
![The not so good stuff](https://i.imgflip.com/9r6lbk.jpg)
- web1.wh20.easyname.systems .. web25.wh20.easyname.systems
## inname
![DONA - where servers go to die](https://thenib.com/wp-content/uploads/2019/08/this-is-not-fine-004-4f0492-1.png)
- ws20.inname.net
- ws21.inname.net
- ws22.inname.net
- ws23.inname.net
- ws24.inname.net
- ws25.inname.net
- ws26.inname.net
- ws27.inname.net
- ws28.inname.net
- ws29.inname.net
- ws30.inname.net
## adino
![adino beim Benamsen der Server so](https://www.gifcen.com/wp-content/uploads/2022/05/kylo-ren-more-gif.gif)
- srv212.adino.at
- srv237.adino.at
- srv244.adino.at
- srv251.adino.at
- srv252.adino.at
- srv268.adino.at
- srv272.adino.at
- srv279.adino.at
- srv280.adino.at
- srv285.adino.at
- srv307.adino.at
- srv327.adino.at
- srv353.adino.at
- srv358.adino.at
- srv395.adino.at
+83
View File
@@ -0,0 +1,83 @@
# <scriptname>
Kurzbeschreibung des Skripts:
<eine Zeile, wofür es gedacht ist>
---
## Features
- Punkt 1
- Punkt 2
- Punkt 3
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone <gitea-url>/esn-support-bash-snippets.git
cd esn-support-bash-snippets/<legacy|wh20>/<scriptname>
chmod +x <scriptname>
```
2. Abhängigkeiten (falls vorhanden) installieren:
- `jq` (optional)
- weitere Tools
---
## Nutzung
### Standardaufruf
```bash
./<scriptname>
```
### Beispiele
```bash
./<scriptname> --option foo
./<scriptname> 2025-09-08
```
---
## Optionen
```
Usage: ./<scriptname> [OPTIONS]
--help Zeigt diese Hilfe
--option Beispieloption
YYYY-MM-DD Beispiel für Datumsargument
```
---
## Beispielausgabe
```
Hier ein Beispieloutput des Skripts.
```
---
## Setup-Hinweise
Falls notwendig, Alias in `~/.bashrc` setzen:
```bash
alias <scriptname>='~/pfad/zum/repo/<legacy|wh20>/<scriptname>/<scriptname>'
```
Logger-spezifisch ggf. in `~/.profile` ergänzen:
```bash
cd /var/log/easyname/$(date +%Y)/$(date +%m)/
```
---
## Notes
- Weitere Hinweise, Einschränkungen, Besonderheiten
- Ggf. bekannte Bugs oder ToDos
+8
View File
@@ -0,0 +1,8 @@
#! /usr/bin/env bash
# Domainchecker für schnelle Prüfung der MX-Records
# Maintainer: peignerpausz
for a in domains
do domain=$(dig +short MX $a)
printf "%s MX-Records: \n⤷%s\n====\n" "$a" "$domain"
done
+76
View File
@@ -0,0 +1,76 @@
# adspam - schneller Spamcheck für MS365 und Spamhaus auf inname-Server
## Funktion
Dieses Skript führt am jeweiligen inname-Host ein grep für geläufige MS365-Fehlercodes sowie Spamhaus auf /var/log/maillog durch und gibt die Anzahl der Treffer für dieses an.
Sofern keine Ergebnisse für den jeweiligen Tag gefunden werden, werden nur die Beginn- und Endzeile des Checks ausgegeben.
## Voraussetzungen
- SSH-Zugriff auf den Zielserver
- Das [`spamcheck`](../spamcheck/spamcheck.sh)-Skript muss auf den Zielservern installiert und ausführbar sein.
- Das [`donaspam`](./donaspam.sh)-Skript ist korrekt auf der connect installiert und ausführbar.
## Installation
```bash
cd
mkdir bin && cd bin ## nur wenn der Folder nicht bereits vorhanden ist
vi donaspam
chmod +x donaspam
```
## Verwendung
```bash
USER1@connect-lej ~ $ donaspam
```
## Syntax
```bash
donaspam
```
## Beispiele
```bash
# Von der Connect aus abgesetzt.
USER@connect-lej ~ $ donaspam
=== Todays Spamcheck on Wed Apr 15 13:23:04 CEST 2026 ===
=== ws20.inname.net Spamcheck ===
✅ All systems green.
=== ws21.inname.net Spamcheck ===
✅ All systems green.
=== ws22.inname.net Spamcheck ===
✅ All systems green.
=== ws23.inname.net Spamcheck ===
✅ All systems green.
=== ws24.inname.net Spamcheck ===
✅ All systems green.
=== ws25.inname.net Spamcheck ===
✅ All systems green.
=== ws26.inname.net Spamcheck ===
❌ Anzahl S3150: 24
=== ws27.inname.net Spamcheck ===
✅ All systems green.
=== ws28.inname.net Spamcheck ===
❌ Anzahl S775: 5
=== ws29.inname.net Spamcheck ===
✅ All systems green.
=== ws30.inname.net Spamcheck ===
✅ All systems green.
```
## Troubleshooting
# zu hohe Anzahl an S3150
Am jeweiligen inname-Webserver prüfen durch gezieltes grep nach `S3150`, ob es sich hierbei um einen anderen String handelt, da Plesk leider auch den String verwendet. -->
```bash
sudo grep -F 'S3150' /var/log/maillog
```
---
*Maintainer: peignerpausz*
+8
View File
@@ -0,0 +1,8 @@
#! /usr/bin/env bash
# Automatisierter Spamcheck für MS365 error-codes und Spamhaus rejections auf inname-Server
# Maintainer: peignerpausz
printf '⚠️ Initiating Spamcheck for inname-servers! ⚠️ \n \n'
for a in {20..30}
do ssh ws$a.inname.net -- bash -lc '~/bin/spamcheck'
done
+52
View File
@@ -0,0 +1,52 @@
# spamcheck - schneller Spamcheck für MS365 und Spamhaus
## Funktion
Dieses Skript führt am jeweiligen Plesk-Host ein grep für geläufige MS365-Fehlercodes sowie Spamhaus auf /var/log/maillog durch und gibt die Anzahl der Treffer für dieses an.
## Voraussetzungen
- SSH-Zugriff auf den Zielserver
- Das Skript muss am Zielserver unter `$HOME/bin` oder `$HOME/spamcheck.sh` abgelegt werden.
- Das Skript muss ausführbar sein (`chmod +x spamcheck` oder `chmod +x spamcheck.sh`)
## Installation
tba.
## Verwendung
```bash
spamcheck
```
## Syntax
```bash
spamcheck
```
## Beispiele
```bash
# random Plesk-Server
eign01_easyname.at@ws25 ~ $ spamcheck
=== ws25.inname.net Spamcheck ===
✅ All systems green.
eign01_easyname.at@ws26 ~ $ spamcheck
=== ws26.inname.net Spamcheck ===
❌ Anzahl S3150: 24
```
## Troubleshooting
# zu hohe Anzahl an S3150
Prüfen durch gezieltes grep nach `S3150`, ob es sich hierbei um einen anderen String handelt. -->
```bash
sudo grep -F 'S3150' /var/log/maillog
```
---
*Maintainer: peignerpausz*
+20
View File
@@ -0,0 +1,20 @@
#! /usr/bin/env bash
# Spamcheck für MS365 error-codes und Spamhaus rejections
# Maintainer: peignerpausz
printf '🚀 %s Spamcheck 🛠️ \n' "$(hostname)"
found_errors=0
for a in S3150 S775 S7771 S7772 S7773 S7774 S7775 S7776 S7777 S7778 S7779 Spamhaus
do
count=$(sudo grep -c "\($a\)" /var/log/maillog 2>/dev/null)
count=${count//$'\r'/}
count=${count//[^0-9]/}
count=${count:-0}
if [ "$count" -gt 0 ]; then
printf "❌ Anzahl %s: %s\n" "$a" "$count"
found_errors=1
fi
done
if [ "$found_errors" -eq 0 ]; then
printf "✅ All systems green.\n"
fi