# esn-support-bash-snippets Sammel-Repository für Bash-Skripte des **easyname Support-Teams**. Hier sammeln wir kleine Helfer für Log-Analysen, Automatisierungen und typische Support-Fälle. ## Inhaltsverzeichnis - [Quick Start](#quick-start) - [Übersicht](#übersicht) - [Bash-Profile](#bash-profile) - [Domaintools](#domaintools) - [Legacy Snippets](#legacy-snippets) - [WH20 Snippets](#wh20-snippets) - [Installation](#installation) - [Updates](#updates) - [How-To: Neues Skript anlegen](#how-to-neues-skript-anlegen) - [Lizenz / Sichtbarkeit](#lizenz--sichtbarkeit) ## Übersicht 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 ## Bash-Profile 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). ## Legacy Snippets - [`checkms`](./legacy/checkms) Analyse von Microsoft-spezifischen SMTP Fehlercodes (S3150, S775, S7771…) in den Exim-Logs. - [`go`](./legacy/go) SSH-Shortcuts mit Kerberos-Auth für Web-, MX-, Logger- und Support-Server - [`pincMails`](./legacy/pincMails) Sucht nach versendeten PINC Mails einer bestimmten Kundennummer und kopiert diese in einen lokalen Unterordner - [`exitrace`](./legacy/exitrace) Exim-Log-Trace & Status für einzelne Mails/Adressen/Domain-Ziele mit Status-Klassifikation (OK/PARTIAL/DELAY/FAIL) ## WH20 Snippets - [`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) 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 **One-liner Installation:** ```bash git clone http://vps.dominikus.one:3000/ljp/esn-support-bash-snippets.git esn-support-tools && cd esn-support-tools && ./install.sh ``` **One-liner Update:** ```bash cd esn-support-tools && ./update.sh ``` ## Installation Nach dem Klonen des Repositories steht ein interaktives Installationsscript zur Verfügung: ```bash # Repository klonen git clone http://vps.dominikus.one:3000/ljp/esn-support-bash-snippets.git # WICHTIG: Repository umbenennen (empfohlen) mv esn-support-bash-snippets esn-support-tools cd esn-support-tools # Installation testen (empfohlen) ./install.sh --dry-run # Installationsscript ausführen ./install.sh # Hilfe anzeigen ./install.sh --help ``` > **⚠️ Wichtiger Hinweis zu Symlinks:** > Das Installationsscript erstellt Symlinks zu den Scripts im **aktuellen Repository-Pfad**. > Wenn du das Repository später verschiebst oder umbenennst, funktionieren die installierten Tools nicht mehr. > **Empfehlung:** Repository vor der Installation in einen permanenten Pfad legen (z.B. `~/tools/esn-support-tools`). ## Updates Für Updates bestehender Installationen: ```bash # In Repository-Verzeichnis wechseln cd /pfad/zu/esn-support-tools # Update testen (empfohlen) ./update.sh --dry-run # Update durchführen ./update.sh ``` **Features des Installers:** - **Dry-Run Modus**: `--dry-run` testet Installation ohne Dateiveränderungen - **Interaktive Auswahl**: Kategorien und einzelne Tools wählbar - **Automatische Backups**: Vorhandene Dateien werden gesichert - **Symlink-Management**: Tools werden in ~/bin verlinkt - **LUSER-Setup**: Automatische Konfiguration für go-Tool - **Modular erweiterbar**: Neue Tools einfach hinzufügbar **Verfügbare Kategorien:** - **Bash-Profile**: .bashrc Optimierungen und modulare Konfiguration - **Legacy Tools**: checkms, go, pincMails, exitrace für Legacy-Infrastruktur - **WH20 Tools**: plesk für WH20-Infrastruktur ## How-To: Neues Skript anlegen 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: ``` bashprofiles// legacy// wh20// ``` 2. **Skript hinzufügen** Das eigentliche Skript im neuen Ordner ablegen: ``` legacy// ``` oder ``` wh20// ``` und ausführbar machen: ```bash chmod +x legacy//.sh chmod +x wh20//.sh ``` 3. **README.md erstellen** Als Basis das Template verwenden: [README_template_script.md](./README_template.md) → kopieren, anpassen und ins Skript-Verzeichnis legen: ``` legacy//README.md ``` oder ``` wh20//README.md ``` 4. **Übersicht aktualisieren** Das Skript in die Übersicht der passenden Kategorie-README eintragen: - [`bashprofiles/README.md`](./bashprofiles/README.md) - [`legacy/README.md`](./legacy/README.md) - [`wh20/README.md`](./wh20/README.md) 5. **Install-Script erweitern** Neue Tools zum `install.sh` hinzufügen für automatische Installation 6. **Commit & Push** Änderungen ins Repo übernehmen: ```bash git add . git commit -m "Add to " git push ``` ## Lizenz / Sichtbarkeit > Dieses Repository ist **intern** für easyname Support. > Falls eine Freigabe nach extern geplant ist, bitte vorab mit Teamleitung abklären.