Compare commits

...
33 Commits
Author SHA1 Message Date
loki 105395c62d Merge pull request 'Peignerpausz patch 1' (#22) from peignerpausz-patch-1 into main
Reviewed-on: #22
Reviewed-by: Loki <alexander@dominikus.one>
2026-09-24 17:15:54 +02:00
peignerpausz e0df6c5405 Repair an inconsistancy within sslchecker. Now it works both interactively as well as directly via cli 2026-09-24 16:53:51 +02:00
peignerpausz 083f42ca51 Added sslchecker.sh to domaintools 2026-09-16 17:52:06 +02:00
loki 2fca686b56 Merge pull request 'remove uneceesary update folder' (#20) from loki/remove_update_folder into main
Reviewed-on: #20
2026-09-07 11:26:32 +02:00
loki 9a4b1ef83d remove uneceesary update folder 2026-09-07 11:25:01 +02:00
loki c950d17582 Merge pull request 'improved wpchecker while in vacation' (#19) from peignerpausz-patch-1 into main
Reviewed-on: #19
Reviewed-by: Loki <alexander@dominikus.one>
2026-09-07 11:12:04 +02:00
peignerpausz e87a48cd7a improved wpchecker while in vacation 2026-09-07 10:01:17 +02:00
loki cf1852fd0a Merge pull request 'Peignerpausz patch 1' (#18) from peignerpausz-patch-1 into main
Reviewed-on: #18
Reviewed-by: Loki <alexander@dominikus.one>
2026-08-20 16:20:53 +02:00
peignerpausz 7c192a0e05 Merge branch 'main' into peignerpausz-patch-1 2026-08-20 14:24:58 +02:00
peignerpausz 83c3b620e9 Updated Main README.md of Repo to reflect addition of new scripts. 2026-08-20 14:19:56 +02:00
peignerpausz 6444a814b0 Improved domainchecker.sh (non-interactive and interactive), various addendums to the documentation. 2026-08-20 14:10:03 +02:00
loki 56c5255442 Merge pull request 'Moved domainchecker into domaintools and improved the barren previous version. Now interactive.' (#17) from peignerpausz-patch-1 into main
Reviewed-on: #17
Reviewed-by: Loki <alexander@dominikus.one>
2026-08-18 20:33:20 +02:00
peignerpausz d248af483d Moved domainchecker into domaintools and improved the barren previous version. Now interactive. 2026-08-18 18:01:06 +02:00
loki 495713b5c2 Merge pull request 'Peignerpausz patch 1' (#16) from peignerpausz-patch-1 into main
Reviewed-on: #16
Reviewed-by: Loki <alexander@dominikus.one>
2026-08-18 13:43:57 +02:00
peignerpausz 28f6958ae3 Fixed typo XD 2026-08-18 13:01:44 +02:00
peignerpausz 8685420f24 Initial commit of histodomain.sh 2026-08-18 12:59:13 +02:00
peignerpausz fdfe0f3594 Apparently adding domainchecker.sh. 2026-05-12 16:31:14 +02:00
peignerpausz 4863322ee3 Merge pull request 'peignerpausz-patch-1' (#15) from peignerpausz-patch-1 into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/15
Reviewed-by: Loki <alexander@dominikus.one>
2026-04-22 14:22:37 +02:00
peignerpausz 99a712ffa4 Added damagereport, improved adspam and donaspam and a Serverliste for internal refrence. And memes ofc. 2026-04-17 13:25:22 +02:00
peignerpausz e9f493bc63 Improved spamcheck with eyecatching emojis and thereby improving visability for adspam and donaspam 2026-04-15 17:10:47 +02:00
peignerpausz de44af64b4 Improved spamcheck and thereby donaspam and adspam 2026-04-15 13:31:27 +02:00
Patrick Eigner-Pausz a1046bda79 Added Spamcheck, adspam and donaspam-scritps for wh20 2026-04-14 14:04:35 +02:00
peignerpausz b361f27241 Merge pull request 'go-improved' (#13) from peignerpausz-patch-1 into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/13
Reviewed-by: Loki <alexander@dominikus.one>
2026-04-14 12:18:07 +02:00
Patrick Eigner-Pausz 55529624c2 Added missing log Option go logger 2026-04-14 12:15:51 +02:00
loki 473cf80c62 Merge pull request 'Added IP address exclusion' (#14) from loki/checkms_ip_addresses into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/14
2026-04-13 13:42:12 +02:00
loki bbe2db2700 Added IP address exclusion 2026-04-13 13:41:20 +02:00
peignerpausz a6ff8e5a6f go-improved
- go-Skript um Quicknav zu wh20, adino und inname-Server ergänzt
- go-Skript um Serverliste in Info-Text erweitert
2026-04-07 11:37:12 +02:00
loki 5ae6001157 Merge pull request 'Fix permission for mail.sh' (#12) from loki/fix_permission_mail.sh into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/12
2026-03-03 14:21:30 +01:00
loki fa2bf9d50d Fix permission for mail.sh 2026-03-03 14:21:05 +01:00
loki e283a519b8 Merge pull request 'added 'log' as Logger destination' (#11) from loki/add_logger_destination into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/11
2026-03-03 14:11:19 +01:00
loki 1bc0c2eb5e added 'log' as Logger destination 2026-03-03 14:10:44 +01:00
loki 50e0126dd3 Merge pull request 'fix permission for wh20.sh' (#10) from loki/fix_permission into main
Reviewed-on: https://vps.dominikus.one:3443/ljp/esn-support-bash-snippets/pulls/10
2026-03-03 13:58:27 +01:00
loki 60856b0312 fix permission for wh20.sh 2026-03-03 13:57:31 +01:00
25 changed files with 1308 additions and 10 deletions
+34 -4
View File
@@ -8,6 +8,7 @@ Hier sammeln wir kleine Helfer für Log-Analysen, Automatisierungen und typische
- [Quick Start](#quick-start)
- [Übersicht](#übersicht)
- [Bash-Profile](#bash-profile)
- [Domaintools](#domaintools)
- [Legacy Snippets](#legacy-snippets)
- [WH20 Snippets](#wh20-snippets)
- [Installation](#installation)
@@ -22,6 +23,7 @@ Hier sammeln wir kleine Helfer für Log-Analysen, Automatisierungen und typische
Die Skripte sind nach Kategorie getrennt:
- [**Bashprofiles**](./bashprofiles/README.md) – Optimierte Bash-Konfigurationen
- [**Domaintools**](./domaintools/README.md) - Tools für Domainabfragen
- [**Legacy**](./legacy/README.md) – Snippets für Legacy-Umgebungen (inkl. Connect Tools)
- [**WH20**](./wh20/README.md) – Snippets für WH20-Umgebungen
@@ -33,6 +35,17 @@ Optimierte Bash-Konfigurationen für verschiedene Support-Umgebungen:
- [`pl`](./bashprofiles/pl)
→ [Dokumentation & Beispiele](./bashprofiles/README.md)
Basis-Profil mit erweiterter History, farbigem Prompt und modularer Struktur
- [`eign01`](./bashprofiles/eign01/)
Sicherungskopie der aktuellen `.bashrc` von `eign01`.
## Domaintools
- [`domainchecker`](./domaintools/domainchecker/README.md)
Tool zur `dig`-Massenabfrage von Domains und DNS-Records.
- [`histodomain`](./domaintools/histodomain/README.md)
Abfrage zu historischen DNS-Einträgen über die [Securitytrails-API](https://securitytrails.com).
- [`sslchecker`](./domaintools/sslchecker/README.md)
Tool zur schnellen SSL-Prüfung mehrerer Domains gleichzeitig.
## Legacy Snippets
@@ -52,9 +65,16 @@ Optimierte Bash-Konfigurationen für verschiedene Support-Umgebungen:
- [`plesk`](./wh20/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.
- [`wh20`](./wh20)
- [`wh20`](./wh20/wh20)
Dieses Skript verbindet zum angegbenen Webserver via SSH
- [`damagecontrol`](./wh20/damagereport)
Dieses Skript ermöglicht die kombinierte Abfrage zu geläufigen Problemen mit MS365-Empfängern über [`checkms`](./legacy/checkms), [`adspam`](./wh20/adspam), [`donaspam`](wh20/donaspam) sowie [`spamcheck` selbst](.wh20/spamcheck).
- [`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
@@ -131,9 +151,10 @@ cd /pfad/zu/esn-support-tools
Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schritte:
1. **Ordnerstruktur anlegen**
Je nach Kategorie (`bashprofiles`, `legacy` oder `wh20`) einen Unterordner erstellen:
Je nach Kategorie (`bashprofiles`, `domaintools`, `legacy` oder `wh20`) einen Unterordner erstellen:
```
bashprofiles/<username>/
domaintools/<scriptname>/
legacy/<scriptname>/
wh20/<scriptname>/
```
@@ -141,6 +162,10 @@ Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schrit
2. **Skript hinzufügen**
Das eigentliche Skript im neuen Ordner ablegen:
```
domaintools/<scriptname>/<scriptname>
```
oder
```
legacy/<scriptname>/<scriptname>
```
oder
@@ -158,16 +183,21 @@ Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schrit
[README_template_script.md](./README_template.md)
→ kopieren, anpassen und ins Skript-Verzeichnis legen:
```
legacy/<scriptname>/README.md
domaintools/<scriptname>/README.md
```
oder
```
legacy/<scriptname>/README.md
```
oder
```
wh20/<scriptname>/README.md
```
4. **Übersicht aktualisieren**
Das Skript in die Übersicht der passenden Kategorie-README eintragen:
- [`bashprofiles/README.md`](./bashprofiles/README.md)
- [`domaintools/README.md`](./domaintools/README.md)
- [`legacy/README.md`](./legacy/README.md)
- [`wh20/README.md`](./wh20/README.md)
+73
View File
@@ -0,0 +1,73 @@
# Domain Tools
Sammlung von Bash-Skripten für diversen Abfragen zu Domains. Enthält Tools zur Massenabfrage von DNS-Einträgen sowie zur Anzeige historischer DNS-Einträge.
---
### Inhaltsverzeichnis
- [Übersicht](#Übersicht)
- [Enthaltene Tools](#enthaltene-Tools)
- [Voraussetzungen](#Voraussetzungen)
- [Lizenz/Sichtbarkeit](#lizenz--sichtbarkeit)
---
## Übersicht
******
---
## enthaltene Tools
### [`domainchecker`](./domainchecker/)
Tool zur dig-Massenabfrage von Domains und DNS-Records.
- [Dokumentation & Beispiele](./domainchecker/README.md)
### [`histodomain`](./histodomain/)
Abfrage zu historischen DNS-Einträgen über die Securitytrails-API.
- [Dokumentation & Beispiele](./histodomain/README.md)
### [`sslchecker`](./sslchecker/)
Tool zur schnellen SSL-Prüfung mehrerer Domains gleichzeitig.
---
## Voraussetzungen
### generelle Voraussetzungen
- kann auch von außerhalb der Connect genutzt werden, sofern eine lokale `bash` verwendbar ist
- **Kerberos-Setup**: Funktionierende Kerberos-Konfiguration
- **SSH-Zugriff**: Berechtigungen für easyname-Infrastruktur
### Setup-Anleitung
1. Kerberos-Ticket erstellen:
```bash
kinit deinusername@NESSUS.AT
# oder mit go-Tool:
go kinit
```
2. Tool in PATH hinzufügen oder Alias erstellen:
```bash
# Option 1: Alias
alias domainchecker="/pfad/zu/domaintools/domainchecker/domainchecker.sh"
# Option 2: Symlink
ln -s /pfad/zu/domaintools/domainchecker/domainchecker.sh ~/bin/domainchecker
```
---
## Lizenz / Sichtbarkeit
> Dieses Repository ist **intern** für easyname Support.
> Falls eine Freigabe nach extern geplant ist, bitte vorab mit Teamleitung abklären.
---
*Diese Tools wurden mit Hilfe von Microsoft Copilot erstellt.*
+96
View File
@@ -0,0 +1,96 @@
# domainchecker
Domainchecker für schnelle Prüfung eines beliebigen DNS-Records für eine beliebige Anzahl an Domains
---
## Features
- Ausgabe einer Liste von DNS-Records für eine beliebige in einem Array übergebene Anzahl Domains
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone git.in.loki-net.at/esn-support-bash-snippets.git
cd esn-support-bash-snippets/domaintools/domainchecker
chmod +x domainchecker.sh
```
2. Abhängigkeiten (falls vorhanden) installieren:
- dnsutils (dig), also vorinstalliert auf connect-lej.
---
## Nutzung
### Standardaufruf
```bash
./domainchecker.sh
```
### Beispiele
```bash
bash domainchecker.sh
> Welche Domains sollen gesucht werden?
> domain1.tld domain2.tld domain3.tld domain4.tld
> Welcher Record soll untersucht werden?
> A
domain1.tld A-Records:
⤷
====
domain2.tld A-Records:
⤷91.151.18.26
====
domain3.tld A-Records:
⤷91.151.18.26
====
domain4.tld A-Records:
⤷91.151.18.28
====
```
---
## 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
@@ -0,0 +1,70 @@
#! /usr/bin/env bash
# Domainchecker für schnelle Prüfung der MX-Records
# Maintainer: peignerpausz
# Version: 1.2
set -eo pipefail
declare -a DOMAINS=()
declare -a RECORDS=()
usage() {
cat <<USAGE
Verwendung:
$0 [OPTIONEN]
Oder interaktiv: $0
Optionen:
-d, --domains DOMAIN [DOMAINS...]
Zu prüfende Domains
-r, --records RECORD [RECORDS...]
Zu prüfende DNS-Records, z.B. A MX TXT
-h, --help
Diese Hilfe anzeigen
Beispiele:
$0 -d domain1.tld domain2.tld -r MX TXT
$0 --domains domain1.tld domain2.tld --records MX TXT
USAGE
}
while [[ $# -gt 0 ]]; do
case "$1" in
-d | --domains)
shift
while [[ $# -gt 0 && "$1" != -* ]]; do
DOMAINS+=("$1")
shift
done
;;
-r | --records)
shift
while [[ $# -gt 0 && "$1" != -* ]]; do
RECORDS+=("$1")
shift
done
;;
-h | --help)
usage
exit 0
;;
esac
done
[[ ${#DOMAINS[@]} -eq 0 ]] && read -ra DOMAINS -p "Welche Domains sollen gesucht werden? " DOMAINS
[[ ${#RECORDS[@]} -eq 0 ]] && read -ra RECORDS -p "Welcher Records sollen gesucht werden? "
for domain in "${DOMAINS[@]}"; do
printf "\n==== %s ====\n" "$domain"
for record in "${RECORDS[@]}"; do
printf "++++ %s ++++\n" "$record"
result=$(dig +short "$record" "$domain")
if [[ -n "$result" ]]; then
printf "%s" "$result"
else
printf "Keine Einträge gefunden."
fi
echo
done
done
+80
View File
@@ -0,0 +1,80 @@
# histodomain - historische DNS-Abfragen
Skript zur schnellen Abfrage historischer Domain-Records im json-Format. Zur Abfrage wird ein API-Key von Securitytrails.com benötigt.
---
## Features
- Abfrage historischer DNS-Records inklusive TTLs und Prioritäten
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone git.int.loki-net.at/esn-support-bash-snippets.git
cd esn-support-bash-snippets/domaintools/histodomain
chmod +x histodomain
```
---
## Nutzung
### Standardaufruf
```bash
./histodomain.sh
```
### 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.
``` bash
histodomain
> Welche Domain?
> domain.tld
> Welcher DNS-Typ?
> a
> API-Key für Securitytrails angeben:
```
---
## Setup-Hinweise
Falls notwendig, Alias in `~/.bashrc` setzen:
```bash
alias <scriptname>='~/pfad/zum/repo/domaintools/histodomain/histodomain.sh'
```
---
## Notes
- Free-Version von Securitytrails ermöglicht bis zu 50 kostenlose Abpfragen über die API/Monat
- To-Do
- Non-interaktive Version bauen
+43
View File
@@ -0,0 +1,43 @@
#!/usr/bin/env bash
# Domaintool zum Abfragen von historischen DNS-Einträgen über die Securitytrails-API
# Maintainer: peignerpausz
# Version: 1
set -eou pipefail
usage() {
cat <<USAGE
Verwendung:
histodomain
> Welche Domain? Domain ohne http oder https!
> domain.tld
> Welcher DNS-Typ? Eintrag in lower case!
> a/aaaa/txt/ns/soa/...
USAGE
}
echo "Welche Domain? Achtung: Domain ohne http oder https! "
read domain
if [[ -z "$domain" ]]; then
{
echo -e "Fehler: keine Domain angegeben. \n" >&2
usage
exit 1
}
fi
echo "Welcher DNS-Typ? Achtung: Eintrag in lower case! "
read dnstype
if [[ -z "$dnstype" ]]; then
{
echo -e "Fehler: keinen DNS-Typ angegeben. \n" >&2
usage
exit 1
}
fi
# Prüfung ob Securitytrails-API-Key übergeben wurde oder als Umgebungsvariable existiert.
if [[ -z "$SECURITYTRAILSAPI" ]]; then
read -rsp "API-Key für Securitytrails angeben: " SECURITYTRAILSAPI
echo
fi
# Hier folgt die eigentliche Abfrage über die Securitytrails-API.
curl --request GET --url \
https://api.securitytrails.com/v1/history/$domain/dns/$dnstype \
--include --header "APIKEY: $SECURITYTRAILSAPI" --header 'Accept: application/json'
+101
View File
@@ -0,0 +1,101 @@
# SSLChecker
Skript zum schnellen Prüfen der Gültigkeit und des Typs von SSL-Certs
---
## Features
- Prüft Gültigkeit
- Prüft Typ (LE oder was anderes)
- Prüft Restgültigkeit des SSL-Certs
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone git.in.loki-net.at/esn-support-bash-snippets.git
cd esn-support-bash-snippets/domaintools/sslchecker
chmod +x sslchecker.sh
```
2. Abhängigkeiten (falls vorhanden) installieren:
- `curl`
- `openssl`
- beide auf der connect vorinstalliert
---
## Nutzung
### Standardaufruf
```bash
./sslchecker.sh
```
### Beispiele
```bash
./sslchecker.sh -d domain1.tld domain2.tld domain3.tld -t le
```
---
## Optionen
```
Verwendung:
bash sslchecker.sh [OPTIONEN]
Oder interaktiv: bash sslchecker.sh
Optionen:
-d, --domains DOMAIN [DOMAINS...]
Zu prüfende Domains
-t, --type Typ
Prüft gegen erwarteten Issuer, etwa Let's Encrypt, Sectigo oder GlobalSign
-h, --help
Diese Hilfe anzeigen
```
---
## Beispielausgabe
```
bash sslchecker.sh -d ironsites.at myrealis.at orf.at -t le
+++SSLCHECKER v0.1+++
====== ironsites.at =========
OK valid SSL
OK SSL-Zertifikat gültig bis Nov 1 23:23:54 2026 GMT (46 Tage verbleibend)
OK Cert ist von Let's Encrypt
====== myrealis.at =========
OK valid SSL
OK SSL-Zertifikat gültig bis Nov 5 07:16:41 2026 GMT (49 Tage verbleibend)
OK Cert ist von Let's Encrypt
====== orf.at =========
OK valid SSL
OK SSL-Zertifikat gültig bis Jan 3 08:17:00 2027 GMT (108 Tage verbleibend)
X Cert ist nicht von Let's Encrypt (gefunden: GlobalSign nv-sa)
```
---
## Setup-Hinweise
Falls notwendig, Alias in `~/.bashrc` setzen:
```bash
alias sslchecker='~/esn-support-tools/domaintools/sslchecker/sslchecker.sh'
```
---
## Notes
- To-Do:
Timeouts abfangen
eventuell Umbau auf `openssl` statt `curl`
Optionen ausbauen
+119
View File
@@ -0,0 +1,119 @@
#!/usr/bin/env bash
# Tool zum Prüfen von SSL-Gültigkeit mehrer Domains
# Maintainer: peignerpausz
set -o pipefail
RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
RESET="\033[0m"
declare -a DOMAINS
usage() {
cat <<USAGE
Verwendung:
bash $0 [OPTIONEN]
Oder interaktiv: bash $0
Optionen:
-d, --domains DOMAIN [DOMAINS...]
Zu prüfende Domains
-t, --type
Prüft gegen erwarteten Issuer, etwa Let's Encrypt, Sectigo oder GlobalSign
-h, --help
Diese Hilfe anzeigen
Beispiele:
$0 -d domain1.tld domain2.tld -t le
$0 --domains domain1.tld domain2.tld --type le
USAGE
}
while [[ $# -gt 0 ]]; do
case "$1" in
-d | --domains)
shift
while [[ $# -gt 0 && "$1" != -* ]]; do
DOMAINS+=("$1")
shift
done
;;
-t | --type)
ISSUER="$2"
case "$ISSUER" in
le)
EXPECTED_ISSUER="Let's Encrypt"
;;
digicert)
EXPECTED_ISSUER="DigiCert"
;;
sectigo)
EXPECTED_ISSUER="Sectigo"
;;
global)
EXPECTED_ISSUER="GlobalSign"
;;
*)
echo "Fehler: Ungültiger Typ '$ISSUER'"
echo "Erlaubte Werte: le, digicert, sectigo, global"
exit 1
;;
esac
shift 2
;;
-h | --help)
usage
exit 0
;;
*)
echo "Unbekannte Option: $1"
usage
exit 1
;;
esac
done
printf "+++SSLCHECKER v0.1+++\n"
[[ ${#DOMAINS[@]} -eq 0 ]] && read -ra DOMAINS -p "Welche Domains sollen gesucht werden? " DOMAINS
for domain in "${DOMAINS[@]}"; do
printf "\n========= %s =========\n" "$domain"
VALIDITY=$(curl -vI https://$domain 2>&1 | grep -F "SSL certificate verify ok")
EXPIRE=$(echo | openssl s_client -connect $domain:443 -servername $domain 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
ISSUER=$(echo | openssl s_client -connect "$domain:443" -servername "$domain" 2>/dev/null |
openssl x509 -noout -issuer |
grep -o 'O *= *[^,]*' |
sed 's/O *= *//')
expire_ts=$(date -d "$EXPIRE" +%s)
now_ts=$(date +%s)
days_left=$(((expire_ts - now_ts) / 86400))
if [[ -n "$VALIDITY" ]]; then
printf "${GREEN}OK${RESET} valid SSL\n"
else
printf "${RED}X${RESET} not valid SSL\n"
fi
if [ "$days_left" -lt 0 ]; then
printf "${RED}CRITICAL${RESET} Zertifikat ist seit %d Tagen abgelaufen (%s)\n" "$((-days_left))" "$EXPIRE"
elif [ "$days_left" -lt 7 ]; then
printf "${RED}CRITICAL${RESET} Zertifikat läuft in %d Tagen ab (%s)\n" "$days_left" "$EXPIRE"
elif [ "$days_left" -lt 30 ]; then
printf "${YELLOW}WARNING${RESET} SSL-Zertifikat läuft in $days_left Tagen ab ($EXPIRE)\n"
else
printf "${GREEN}OK${RESET} SSL-Zertifikat gültig bis $EXPIRE ($days_left Tage verbleibend)\n"
fi
if [[ -n $EXPECTED_ISSUER ]]; then
if [[ "$ISSUER" == *"$EXPECTED_ISSUER"* ]]; then
printf "${GREEN}OK${RESET} Cert ist von %s" "$EXPECTED_ISSUER"
else
printf "${YELLOW}X${RESET} Cert ist nicht von %s (gefunden: %s)" "$EXPECTED_ISSUER" "$ISSUER"
fi
else
printf "${GREEN}INFO${RESET} Cert-Aussteller: %s" "$ISSUER"
fi
printf "\n"
done
+4
View File
@@ -213,6 +213,7 @@ $REMOTE bash -s <<EOF
exit 1
fi
echo "⚠️ Starte checkms für $DATE"
echo "Analysiere $LOGFILE"
echo
printf "%-8s %-16s %-8s\n" "COUNT" "IP" "CODE"
@@ -245,6 +246,9 @@ $REMOTE bash -s <<EOF
ip=\$i
}
}
if (ip ~ /^77\.244\.243\.(9|10|11|12)$/) {
next
}
print code, ip
}
' \
+37 -5
View File
@@ -1,24 +1,31 @@
#!/usr/bin/env bash
# go - SSH-Shortcuts für easyname Server
# go improved - SSH-Shortcuts für easyname, WH20, adino und inname Server
# Maintainer: ljp
set -euo pipefail
LUSER="${LUSER:?Bitte LUSER setzen!}"
WHUSER="${WHUSER:?Bitte WHUSER setzen!}"
usage() {
cat <<USAGE
Usage:
go k|kinit
go w|web <NR> [EUSER] [-- <REMOTE-CMD>...]
go m|mx <NR> [-- <REMOTE-CMD>...]
go l|logger [-- <REMOTE-CMD>...]
go l|log|logger [-- <REMOTE-CMD>...]
go s|support [-- <REMOTE-CMD>...]
go a|adino
go i|inname
go o|wh20
Beispiele:
go web 42
go web 42 e110604
go mx 12 -- bash -lc 'hostname; uptime'
go logger -- bash -s # für Here-Doc
Serverliste:
Legacy-Server 01..26, 107, 114, 119, 501..532
WH20-Server 1..25
Adino-Server 212 237 244 251 252 268 272 279 280 285 307 327 353 358 395
inname-Server 20..30
USAGE
}
@@ -57,7 +64,7 @@ case "$cmd" in
exec ssh "$host" "$@"
;;
l|logger)
l|log|logger)
# go logger [-- REMOTE-CMD...]
host="${LUSER}@logger.in.nessus.at"
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
@@ -71,6 +78,31 @@ case "$cmd" in
exec ssh "$host" "$@"
;;
o|wh20)
# go wh20 web NR
[[ $# -ge 1 ]] || { echo "Fehler: 'go wh20' benötigt <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${WHUSER}@web${nr}.wh20.easyname.systems"
exec ssh "$host" "$@"
;;
a|adino)
# go adino srv NR
[[ $# -ge 1 ]] || { echo "Fehler: 'go adino' benötigt <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${WHUSER}@srv${nr}.adino.at"
exec ssh "$host" "$@"
;;
i|inname)
# go adino srv NR
[[ $# -ge 1 ]] || { echo "Fehler: 'go inname' benötigt <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${WHUSER}@ws${nr}.inname.net"
exec ssh "$host" "$@"
;;
*)
usage; exit 1
;;
Regular → Executable
View File
+99
View File
@@ -0,0 +1,99 @@
# wpchecker
Tool zum Schnellen prüfen mehrerer WordPress-Installationen
---
## Features
- Prüfen der Coreversion
- Prüfen der Core Checksums
- Prüfen der Plugin Checksums
- Prüfen der Adminnutzer
---
## Installation
1. Repository klonen oder Skript kopieren:
```bash
git clone git.int.loki-net.at/esn-support-bash-snippets.git
cd esn-support-bash-snippets/legacy/wpchecker
chmod +x wpchecker.sh
```
2. Abhängigkeiten (falls vorhanden) installieren:
- [`wp-cli`](https://group-one.atlassian.net/wiki/spaces/EASYNAME/pages/33673314407/WP-CLI-Mastery)
---
## Nutzung
Skript kann im Prinzip von überall aus dem Usercontainer abgesetzt werden, da es über die $HOME-Variable direkt das html-Verzeichnis prüft.
### Standardaufruf
```bash
./wpchecker.sh
```
### Beispiele
```bash
./wpchecker.sh
```
---
## Optionen
```
Usage: ./<scriptname> [OPTIONS]
--help Zeigt diese Hilfe
--option Beispieloption
YYYY-MM-DD Beispiel für Datumsargument
```
---
## Beispielausgabe
```bash
bash wpchecker
WPChecker wird gestartet...
Führe zu prüfenden Usernamen an: yun
yun
Führe Stammverzeichnis der zu prüfenden WordPress-Installationen an: html
html
Beginne Prüfung der WordPress-Installationen
++++++++++++++++++++
Prüfe html/pbtest/classicp
+++++++++++++++++
6.2.9
X Coresum-Fehler!
OK Kein eindeutiger Hinweis auf wp2shell!
OK Plugins okay!
Prüfe html/apps/wordpress-134151
+++++++++++++++++
7.1
OK Kein eindeutiger Hinweis auf wp2shell!
OK Plugins okay!
```
---
## Setup-Hinweise
Falls notwendig, Alias in `~/.bashrc` des Kunden setzen:
```bash
alias wpchecker='~/bin/wpchecker.sh'
```
---
## Notes
- WP-CLI muss unter /data/web/eUser/bin abgelegt und ausführbar sein
- ToDos
- non-interaktive Version bauen
+66
View File
@@ -0,0 +1,66 @@
#! /usr/bin/env bash
# Tool zum Schnellen prüfen mehrerer WordPress-Installationen
# Maintainer: peignerpausz
set -ou pipefail
RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
RESET="\033[0m"
declare -a wpuser
declare wppath
declare uploads
printf "WPChecker wird gestartet...\n\n"
printf "Führe zu prüfenden Usernamen an: "
read -a wpuser
echo "${wpuser[@]}"
printf "Führe Stammverzeichnis der zu prüfenden WordPress-Installationen an: "
read wppath
echo "$wppath"
printf "Beginne Prüfung der WordPress-Installationen\n++++++++++++++++++++\n"
for wordpress in $(find $wppath -type f -name "wp-config.php" -exec dirname {} \;); do
[[ -d "$wordpress" ]] || continue
# Setzt Prüfung nur für alle Verzeichnisse mit einer vorhandenen wp-config.php fort.
# Wenn viele Verzeichnisse geprüft werden ist für die Übersichtlichkeit die Unterdrückung von Fehlern mittels 2>/dev/null empfehlenswert.
printf "\nPrüfe $wordpress\n+++++++++++++++++\n"
corev=$(php ~/bin/wp-cli.phar core version --path="$wordpress")
printf "${YELLOW}%s${RESET}\n" "$corev"
coresum=$(php ~/bin/wp-cli.phar core verify-checksums --path="$wordpress" 2>/dev/null)
if [[ $? > 0 ]]; then
printf "${RED}X${RESET} Coresum-Fehler!\n"
else
printf="${GREEN}OK${RESET} Coresum okay!\n"
fi
userlist=$(php ~/bin/wp-cli.phar user list --role=administrator --path="$wordpress")
for a in "${wpuser[@]}"; do
if printf "%s" "$userlist" | grep -Fq -- $a; then
printf "${RED}X${RESET} Hinweis auf wp2hsell gefunden! Username: %s\n Rate zur Prüfung von wp-content/uploads auf .htaccess und php-Files.\n" "$a"
else
printf "${GREEN}OK${RESET} Kein eindeutiger Hinweis auf wp2shell!\n"
fi
done
plugincheck=$(php ~/bin/wp-cli.phar plugin verify-checksums --all --path="$wordpress" 2>/dev/null)
if [[ $? > 0 ]]; then
printf "${RED}X${RESET} Plugins prüfen!\n Rate zur Prüfung von wp-content/uploads auf .htaccess- und .php-Files\n"
else
printf "${GREEN}OK${RESET} Plugins okay!\n"
fi
for uploads in $(find $wppath -type d -wholename "wp-content/uploads" -exec dirname {} \;); do
[[ -d "$uploads" ]] || continue
printf "Prüfe Upload-Folder auf verdächtige .htaccess-Files\n"
htaccesschecker=$(find "$uploads" -type f -name ".htaccess")
if printf "%s" "$htaccesschecker" | grep "*.php"; then
printf "${RED}X${RESET} .htaccess im Uploadfolder gefunden: %s\n" "$htaccesschecker"
else
printf"${GREEN}OK${RESET} keine .htaccess im Uploadfolder gefunden!\n"
fi
printf "Prüfe Upload-Folder auf verdächtige php-Files\n"
phpchecker=$(find "$uploads" -type f -name "*.php" | wc -l)
if [[ "$phpchecker" > 0 ]]; then
printf "${RED}X${RESET} PHP-Files im Uploadfolder gefunden: %s\n" "$phpchecker"
else
printf "${GREEN}OK${RESET} keine PHP-Files im Uploadfolder gefunden!\n"
fi
done
done
+12 -1
View File
@@ -20,12 +20,23 @@ Die Dokumentationen werden in Unterordnern zu den jeweiligen Skripten gepflegt.
### [`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.
- [Dokumentation & Beispiele](./plesk/README.md)
### [`wh20`](./wh20)
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
+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
+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
Regular → Executable
View File
+28
View File
@@ -0,0 +1,28 @@
#! /usr/bin/env bash
# Tool zum Schnellen prüfen mehrerer WordPress-Installationen
# Maintainer: peignerpausz
declare -a WORDPRESS=()
WORDPRESS="$(ls | grep wordpress)"
printf "Beginne Prüfung der Adminnutzer\n\n"
for wordpress in wordpress*/; do
[[ -d "$wordpress" ]] || continue
echo "Prüfe $wordpress"
userlist=$(php ~/bin/wp-cli.phar user list --role=administrator --path="$wordpress" 2>/dev/null)
if [[ -n "$userlist" ]]; then
printf "%s\n\n" "$userlist"
else
printf "Fehler bei %s\n\n" "$wordpress"
fi
done
for uneasy in $(find html/. -type f -name "wp-config.php" -exec dirname {} \;); do
[[ -f "$uneasy" ]] || continue
echo "Prüfe $uneasy"
userlist2=$(php ~/bin/wp-cli.phar user list --role=administrator --path="$uneasy")
echo $userlist2
if [[ -n "$userlist2" ]]; then
printf "%s\n\n" "$userlist2"
else
printf "Fehler bei %s\n\n" "$uneasy"
fi
done