Neue Connect-Tools Kategorie und umfassende Dokumentation hinzugefügt
- go.sh SSH-Shortcut Tool mit vollständiger Dokumentation - Neue Connect-Kategorie für Verbindungstools - Umfassende .gitignore mit rekursiven Mustern - CLAUDE.md für zukünftige Claude Code Instanzen - README-Updates für bessere Navigation Die Connect-Tools vereinfachen SSH-Verbindungen zu easyname-Servern mit Kerberos-Auth und unterstützen Web-, MX-, Logger- und Support-Server. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"Bash(git add:*)"
|
||||||
|
],
|
||||||
|
"deny": [],
|
||||||
|
"ask": []
|
||||||
|
}
|
||||||
|
}
|
||||||
+67
@@ -0,0 +1,67 @@
|
|||||||
|
# Bash-spezifische temporäre Dateien (recursive)
|
||||||
|
**/*.tmp
|
||||||
|
**/*.swp
|
||||||
|
**/*.swo
|
||||||
|
**/*~
|
||||||
|
|
||||||
|
# Logs (recursive)
|
||||||
|
**/*.log
|
||||||
|
**/*.log.*
|
||||||
|
|
||||||
|
# Backup-Dateien (recursive)
|
||||||
|
**/*.bak
|
||||||
|
**/*.backup
|
||||||
|
**/*.orig
|
||||||
|
|
||||||
|
# OS-spezifische Dateien (recursive)
|
||||||
|
**/.DS_Store
|
||||||
|
**/.DS_Store?
|
||||||
|
**/._*
|
||||||
|
**/.Spotlight-V100
|
||||||
|
**/.Trashes
|
||||||
|
**/ehthumbs.db
|
||||||
|
**/Thumbs.db
|
||||||
|
|
||||||
|
# Editor-spezifische Dateien (recursive)
|
||||||
|
**/.vscode/
|
||||||
|
**/.idea/
|
||||||
|
**/*.sublime-*
|
||||||
|
|
||||||
|
# Konfigurationsdateien mit sensiblen Daten (recursive)
|
||||||
|
**/config/
|
||||||
|
**/.config/
|
||||||
|
**/*.conf
|
||||||
|
**/*.config
|
||||||
|
|
||||||
|
# SSH Keys und Credentials (recursive)
|
||||||
|
**/id_rsa*
|
||||||
|
**/id_ed25519*
|
||||||
|
**/*.pem
|
||||||
|
**/*.key
|
||||||
|
**/*_key
|
||||||
|
|
||||||
|
# Temporary directories (recursive)
|
||||||
|
**/tmp/
|
||||||
|
**/temp/
|
||||||
|
**/cache/
|
||||||
|
|
||||||
|
# User-spezifische Dateien
|
||||||
|
userprofiles/*/
|
||||||
|
!userprofiles/pl/
|
||||||
|
|
||||||
|
# Checkms Konfigurationen (können sensible Daten enthalten)
|
||||||
|
**/checkms.conf
|
||||||
|
|
||||||
|
# Test-Ausgaben (recursive)
|
||||||
|
**/test_output/
|
||||||
|
**/test_results/
|
||||||
|
|
||||||
|
# Runtime-Dateien
|
||||||
|
**/*.pid
|
||||||
|
**/*.sock
|
||||||
|
|
||||||
|
# Compressed files (meist temporär)
|
||||||
|
**/*.tar.gz
|
||||||
|
**/*.zip
|
||||||
|
**/*.7z
|
||||||
|
**/archive.*
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Repository Overview
|
||||||
|
|
||||||
|
Collection of **Bash scripts for easyname Support Team** - small helpers for log analysis, automations, and typical support cases. Repository is **internal** for easyname Support.
|
||||||
|
|
||||||
|
### Architecture
|
||||||
|
|
||||||
|
Scripts are organized by platform:
|
||||||
|
- **`legacy/`** - Scripts for Legacy infrastructure (contains `checkms`, `quicknav`)
|
||||||
|
- **`wh20/`** - Scripts for WH20 infrastructure (currently empty, placeholder for future scripts)
|
||||||
|
- **`connect/`** - Connection utilities (contains `go` SSH shortcut script)
|
||||||
|
- **`userprofiles/`** - User-specific configuration files
|
||||||
|
|
||||||
|
Each script follows a modular structure:
|
||||||
|
```
|
||||||
|
platform/<scriptname>/
|
||||||
|
├── <scriptname>.sh # The actual script
|
||||||
|
└── README.md # Documentation and examples
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Commands
|
||||||
|
|
||||||
|
### Adding New Scripts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Create folder structure (legacy or wh20)
|
||||||
|
mkdir -p legacy/<scriptname>
|
||||||
|
|
||||||
|
# 2. Add script and make executable
|
||||||
|
chmod +x legacy/<scriptname>/<scriptname>.sh
|
||||||
|
|
||||||
|
# 3. Copy and adapt documentation template
|
||||||
|
cp README_template.md legacy/<scriptname>/README.md
|
||||||
|
|
||||||
|
# 4. Update platform README
|
||||||
|
# Edit legacy/README.md or wh20/README.md
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testing Scripts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test checkms (MS error code analysis)
|
||||||
|
./legacy/checkms/checkms.sh --help
|
||||||
|
./legacy/checkms/checkms.sh --show-config
|
||||||
|
./legacy/checkms/checkms.sh 2024-01-15
|
||||||
|
|
||||||
|
# Test go SSH shortcuts
|
||||||
|
./connect/go/go.sh web 42
|
||||||
|
./connect/go/go.sh mx 12
|
||||||
|
```
|
||||||
|
|
||||||
|
### Git Operations
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Commit changes
|
||||||
|
git add .
|
||||||
|
git commit -m "Add <scriptname> to <legacy|wh20>"
|
||||||
|
git push origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
## Core Scripts
|
||||||
|
|
||||||
|
### `checkms` - Microsoft SMTP Error Analysis
|
||||||
|
- Analyzes Microsoft-specific SMTP error codes (S3150, S775, S7771*) in Exim logs
|
||||||
|
- Config stored in `~/.config/checkms/checkms.conf`
|
||||||
|
- Can add/remove error codes dynamically
|
||||||
|
- Supports time-based filtering (--minutes, --hours)
|
||||||
|
|
||||||
|
### `go` - SSH Connection Shortcuts
|
||||||
|
- Requires `LUSER` environment variable set
|
||||||
|
- Commands: `go web <NR>`, `go mx <NR>`, `go logger`, `go support`, `go kinit`
|
||||||
|
- Supports remote command execution with `--` separator
|
||||||
|
- Special handling for `easyuser` connections on web servers
|
||||||
|
|
||||||
|
### `quicknav` - Legacy Navigation Function
|
||||||
|
- Simple bash function for quick SSH connections
|
||||||
|
- Must be sourced in `.bashrc`/`.zshrc`
|
||||||
|
- Requires manual configuration of `LUSER` variable
|
||||||
|
|
||||||
|
## Environment Requirements
|
||||||
|
|
||||||
|
- **LUSER**: Required environment variable for authentication (format: `username`)
|
||||||
|
- **SSH Access**: Must have Kerberos authentication set up (`kinit`)
|
||||||
|
- **Target Hosts**:
|
||||||
|
- `web*.in.easyname.com`
|
||||||
|
- `mx*.in.easyname.com`
|
||||||
|
- `logger.in.nessus.at`
|
||||||
|
- `support.in.easyname.com`
|
||||||
|
|
||||||
|
## Configuration Files
|
||||||
|
|
||||||
|
- `checkms` uses JSON config at `~/.config/checkms/checkms.conf`
|
||||||
|
- User profiles stored in `userprofiles/` directory
|
||||||
|
- `.bashrc` example available with history settings and prompt configuration
|
||||||
@@ -8,6 +8,7 @@ Hier sammeln wir kleine Helfer für Log-Analysen, Automatisierungen und typische
|
|||||||
## Inhaltsverzeichnis
|
## Inhaltsverzeichnis
|
||||||
|
|
||||||
- [Übersicht](#übersicht)
|
- [Übersicht](#übersicht)
|
||||||
|
- [Connect Tools](#connect-tools)
|
||||||
- [Legacy Snippets](#legacy-snippets)
|
- [Legacy Snippets](#legacy-snippets)
|
||||||
- [WH20 Snippets](#wh20-snippets)
|
- [WH20 Snippets](#wh20-snippets)
|
||||||
- [How-To: Neues Skript anlegen](#how-to-neues-skript-anlegen)
|
- [How-To: Neues Skript anlegen](#how-to-neues-skript-anlegen)
|
||||||
@@ -17,13 +18,24 @@ Hier sammeln wir kleine Helfer für Log-Analysen, Automatisierungen und typische
|
|||||||
|
|
||||||
## Übersicht
|
## Übersicht
|
||||||
|
|
||||||
Die Skripte sind nach Plattform getrennt:
|
Die Skripte sind nach Kategorie getrennt:
|
||||||
|
|
||||||
|
- [**Connect**](./connect/README.md) – SSH-Verbindungstools und Shortcuts
|
||||||
- [**Legacy**](./legacy/README.md) – Snippets für Legacy-Umgebungen
|
- [**Legacy**](./legacy/README.md) – Snippets für Legacy-Umgebungen
|
||||||
- [**WH20**](./wh20/README.md) – Snippets für WH20-Umgebungen
|
- [**WH20**](./wh20/README.md) – Snippets für WH20-Umgebungen
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Connect Tools
|
||||||
|
|
||||||
|
Verbindungstools für schnellen Zugriff auf easyname-Server:
|
||||||
|
|
||||||
|
- [`go`](./connect/go)
|
||||||
|
→ [Dokumentation & Beispiele](./connect/go/README.md)
|
||||||
|
SSH-Shortcuts mit Kerberos-Auth für Web-, MX-, Logger- und Support-Server
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Legacy Snippets
|
## Legacy Snippets
|
||||||
|
|
||||||
Aktuell enthalten:
|
Aktuell enthalten:
|
||||||
@@ -48,8 +60,9 @@ Weitere Snippets für Legacy kommen hier dazu.
|
|||||||
Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schritte:
|
Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schritte:
|
||||||
|
|
||||||
1. **Ordnerstruktur anlegen**
|
1. **Ordnerstruktur anlegen**
|
||||||
Je nach Umgebung (`legacy` oder `wh20`) einen Unterordner erstellen:
|
Je nach Kategorie (`connect`, `legacy` oder `wh20`) einen Unterordner erstellen:
|
||||||
```
|
```
|
||||||
|
connect/<scriptname>/
|
||||||
legacy/<scriptname>/
|
legacy/<scriptname>/
|
||||||
wh20/<scriptname>/
|
wh20/<scriptname>/
|
||||||
```
|
```
|
||||||
@@ -82,7 +95,8 @@ Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schrit
|
|||||||
```
|
```
|
||||||
|
|
||||||
4. **Übersicht aktualisieren**
|
4. **Übersicht aktualisieren**
|
||||||
Das Skript in die Übersicht der passenden Plattform-README eintragen:
|
Das Skript in die Übersicht der passenden Kategorie-README eintragen:
|
||||||
|
- [`connect/README.md`](./connect/README.md)
|
||||||
- [`legacy/README.md`](./legacy/README.md)
|
- [`legacy/README.md`](./legacy/README.md)
|
||||||
- [`wh20/README.md`](./wh20/README.md)
|
- [`wh20/README.md`](./wh20/README.md)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
# Connect Tools
|
||||||
|
|
||||||
|
SSH-Verbindungstools und Shortcuts für den schnellen Zugriff auf easyname-Infrastruktur.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Inhaltsverzeichnis
|
||||||
|
|
||||||
|
- [Übersicht](#übersicht)
|
||||||
|
- [Enthaltene Tools](#enthaltene-tools)
|
||||||
|
- [Voraussetzungen](#voraussetzungen)
|
||||||
|
- [Lizenz / Sichtbarkeit](#lizenz--sichtbarkeit)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Übersicht
|
||||||
|
|
||||||
|
Die Connect-Tools vereinfachen den Zugriff auf verschiedene easyname-Server durch intelligente SSH-Shortcuts mit Kerberos-Authentifizierung. Sie reduzieren wiederkehrende Eingaben und ermöglichen schnelle Verbindungen zu Web-, Mail-, Logger- und Support-Servern.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Enthaltene Tools
|
||||||
|
|
||||||
|
### [`go`](./go)
|
||||||
|
SSH-Shortcut-Tool für schnelle Verbindungen zu easyname-Servern.
|
||||||
|
|
||||||
|
- [Dokumentation & Beispiele](./go/README.md)
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Kerberos-Authentifizierung (`go kinit`)
|
||||||
|
- Web-Server Zugriff mit optionalem easyuser-Wechsel (`go web 42 e110604`)
|
||||||
|
- Mail-Server Zugriff (`go mx 12`)
|
||||||
|
- Logger-Server Zugriff (`go logger`)
|
||||||
|
- Support-Server Zugriff (`go support`)
|
||||||
|
- Remote-Command Ausführung mit `--` Separator
|
||||||
|
- Unterstützung für Here-Documents und Piping
|
||||||
|
|
||||||
|
**Quick Examples:**
|
||||||
|
```bash
|
||||||
|
# Kerberos-Auth
|
||||||
|
go kinit
|
||||||
|
|
||||||
|
# Web-Server mit easyuser
|
||||||
|
go web 42 e110604
|
||||||
|
|
||||||
|
# Remote-Command auf MX-Server
|
||||||
|
go mx 12 -- mailq | head -5
|
||||||
|
|
||||||
|
# Logs auf Logger durchsuchen
|
||||||
|
go logger -- grep "error" /var/log/syslog
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
### Generelle Anforderungen
|
||||||
|
- **Kerberos-Setup**: Funktionierende Kerberos-Konfiguration
|
||||||
|
- **SSH-Zugriff**: Berechtigungen für easyname-Infrastruktur
|
||||||
|
- **LUSER Variable**: Muss in Environment gesetzt sein
|
||||||
|
|
||||||
|
### Setup-Anleitung
|
||||||
|
1. LUSER in `~/.bashrc` oder `~/.bash_env` setzen:
|
||||||
|
```bash
|
||||||
|
export LUSER="deinusername"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Kerberos-Ticket erstellen:
|
||||||
|
```bash
|
||||||
|
kinit deinusername@NESSUS.AT
|
||||||
|
# oder mit go-Tool:
|
||||||
|
go kinit
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Tool in PATH hinzufügen oder Alias erstellen:
|
||||||
|
```bash
|
||||||
|
# Option 1: Alias
|
||||||
|
alias go="/pfad/zu/connect/go/go.sh"
|
||||||
|
|
||||||
|
# Option 2: Symlink
|
||||||
|
ln -s /pfad/zu/connect/go/go.sh ~/bin/go
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 Claude Code erstellt.*
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
# go - SSH-Shortcuts für easyname Server
|
||||||
|
|
||||||
|
Bash-Skript für schnelle SSH-Verbindungen zu easyname-Servern mit Kerberos-Authentifizierung.
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- **LUSER** Umgebungsvariable muss gesetzt sein (dein Kerberos-Username)
|
||||||
|
- Kerberos-Authentifizierung konfiguriert
|
||||||
|
- SSH-Zugriff auf easyname-Infrastruktur
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
1. **LUSER Variable setzen** (in `~/.bashrc` oder `~/.bash_env`):
|
||||||
|
```bash
|
||||||
|
export LUSER="deinusername"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Skript ausführbar machen**:
|
||||||
|
```bash
|
||||||
|
chmod +x go.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Optional: In PATH hinzufügen** oder Alias erstellen:
|
||||||
|
```bash
|
||||||
|
# Alias in ~/.bashrc
|
||||||
|
alias go="/pfad/zu/go.sh"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Verwendung
|
||||||
|
|
||||||
|
### Kerberos-Authentifizierung
|
||||||
|
```bash
|
||||||
|
go kinit # Authentifiziert $LUSER@NESSUS.AT
|
||||||
|
go k # Kurzform
|
||||||
|
```
|
||||||
|
|
||||||
|
### Web-Server Verbindungen
|
||||||
|
```bash
|
||||||
|
go web 42 # Verbindet zu web42.in.easyname.com
|
||||||
|
go w 42 # Kurzform
|
||||||
|
|
||||||
|
go web 42 e110604 # Verbindet und wechselt zu easyuser e110604
|
||||||
|
go w 42 e110604 # Kurzform mit easyuser
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mail-Server Verbindungen
|
||||||
|
```bash
|
||||||
|
go mx 12 # Verbindet zu mx12.in.easyname.com
|
||||||
|
go m 12 # Kurzform
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logger-Server
|
||||||
|
```bash
|
||||||
|
go logger # Verbindet zu logger.in.nessus.at
|
||||||
|
go l # Kurzform
|
||||||
|
```
|
||||||
|
|
||||||
|
### Support-Server
|
||||||
|
```bash
|
||||||
|
go support # Verbindet zu support.in.easyname.com
|
||||||
|
go s # Kurzform
|
||||||
|
```
|
||||||
|
|
||||||
|
## Remote-Befehle ausführen
|
||||||
|
|
||||||
|
Mit `--` können Remote-Befehle direkt ausgeführt werden:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Hostname und Uptime auf mx12 anzeigen
|
||||||
|
go mx 12 -- bash -lc 'hostname; uptime'
|
||||||
|
|
||||||
|
# Logs auf logger durchsuchen
|
||||||
|
go logger -- grep "error" /var/log/syslog
|
||||||
|
|
||||||
|
# Here-Doc an Remote-Server senden
|
||||||
|
go logger -- bash -s <<'EOF'
|
||||||
|
echo "Mehrere Befehle"
|
||||||
|
date
|
||||||
|
hostname
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
## Technische Details
|
||||||
|
|
||||||
|
### Verbindungsverhalten
|
||||||
|
|
||||||
|
- **Mit easyuser**: Interaktive TTY-Session mit `-qtt` (für `easyuser` Wechsel)
|
||||||
|
- **Ohne easyuser**: Non-interaktive Session, ideal für Scripting
|
||||||
|
- **Remote-Commands**: Werden direkt an SSH durchgereicht
|
||||||
|
|
||||||
|
### Server-Mapping
|
||||||
|
|
||||||
|
| Kommando | Server |
|
||||||
|
|----------|--------|
|
||||||
|
| `web<NR>` | `web<NR>.in.easyname.com` |
|
||||||
|
| `mx<NR>` | `mx<NR>.in.easyname.com` |
|
||||||
|
| `logger` | `logger.in.nessus.at` |
|
||||||
|
| `support` | `support.in.easyname.com` |
|
||||||
|
|
||||||
|
### Exit-Codes
|
||||||
|
|
||||||
|
Das Skript gibt den Exit-Code des SSH-Befehls direkt weiter, was es ideal für Scripting macht.
|
||||||
|
|
||||||
|
## Beispiele für fortgeschrittene Nutzung
|
||||||
|
|
||||||
|
### Logs von mehreren Servern sammeln
|
||||||
|
```bash
|
||||||
|
for i in {1..5}; do
|
||||||
|
echo "=== Web$i ==="
|
||||||
|
go web $i -- tail -n 5 /var/log/apache2/error.log
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
### Parallel auf mehreren MX-Servern prüfen
|
||||||
|
```bash
|
||||||
|
for mx in 10 11 12; do
|
||||||
|
go mx $mx -- mailq | head -5 &
|
||||||
|
done
|
||||||
|
wait
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mit checkms kombinieren
|
||||||
|
```bash
|
||||||
|
# Wenn go als Befehl verfügbar ist, nutzt checkms es automatisch
|
||||||
|
checkms --minutes 30
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### LUSER nicht gesetzt
|
||||||
|
```
|
||||||
|
Fehler: Bitte LUSER setzen!
|
||||||
|
```
|
||||||
|
**Lösung**: `export LUSER="deinusername"` in ~/.bashrc hinzufügen
|
||||||
|
|
||||||
|
### Kerberos-Ticket abgelaufen
|
||||||
|
```
|
||||||
|
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
|
||||||
|
```
|
||||||
|
**Lösung**: `go kinit` ausführen
|
||||||
|
|
||||||
|
### Server-Nummer vergessen
|
||||||
|
```
|
||||||
|
Fehler: 'go web' benötigt <NR> [EUSER].
|
||||||
|
```
|
||||||
|
**Lösung**: Server-Nummer angeben, z.B. `go web 42`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Dieses Skript wurde mit Hilfe von Claude Code erstellt.*
|
||||||
Reference in New Issue
Block a user