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
|
||||
|
||||
- [Übersicht](#übersicht)
|
||||
- [Connect Tools](#connect-tools)
|
||||
- [Legacy Snippets](#legacy-snippets)
|
||||
- [WH20 Snippets](#wh20-snippets)
|
||||
- [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
|
||||
|
||||
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
|
||||
- [**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
|
||||
|
||||
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:
|
||||
|
||||
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>/
|
||||
wh20/<scriptname>/
|
||||
```
|
||||
@@ -82,7 +95,8 @@ Um ein neues Bash-Skript in dieses Repository aufzunehmen, bitte folgende Schrit
|
||||
```
|
||||
|
||||
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)
|
||||
- [`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