230 lines
6.2 KiB
Bash

#!/bin/bash
# Setup-Skript für Dell Switch Backup System
# Erstellt Verzeichnisse und Beispiel-Konfigurationen
CONFIG_DIR="/etc/switchbackup"
LOG_DIR="/var/log"
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
echo "=========================================="
echo "Dell Switch Backup System Setup"
echo "=========================================="
# Prüfe Root-Rechte für /etc Zugriff
if [ "$EUID" -ne 0 ] && [ ! -w "/etc" ]; then
echo "HINWEIS: Für /etc/switchbackup werden Root-Rechte benötigt"
echo "Verwenden Sie: sudo $0"
echo ""
echo "Erstelle lokales Verzeichnis als Alternative..."
CONFIG_DIR="./switchbackup"
fi
# 1. Konfigurationsverzeichnis erstellen
echo "1. Erstelle Konfigurationsverzeichnis: $CONFIG_DIR"
mkdir -p "$CONFIG_DIR"
if [ $? -eq 0 ]; then
echo " ✓ Verzeichnis erstellt: $CONFIG_DIR"
else
echo " ✗ FEHLER beim Erstellen von $CONFIG_DIR"
exit 1
fi
# 2. Log-Verzeichnis prüfen
echo ""
echo "2. Prüfe Log-Verzeichnis: $LOG_DIR"
if [ -w "$LOG_DIR" ]; then
echo " ✓ Log-Verzeichnis verfügbar: $LOG_DIR"
else
echo " ⚠ Log-Verzeichnis nicht beschreibbar - Logs gehen nach stdout"
fi
# 3. Abhängigkeiten prüfen
echo ""
echo "3. Prüfe Abhängigkeiten..."
# expect prüfen
if command -v expect >/dev/null 2>&1; then
echo " ✓ expect ist installiert"
else
echo " ✗ expect fehlt - Installation:"
echo " sudo apt-get install expect"
fi
# ftp prüfen
if command -v ftp >/dev/null 2>&1; then
echo " ✓ ftp-client ist installiert"
else
echo " ⚠ ftp-client fehlt - für Backup-Cleanup benötigt:"
echo " sudo apt-get install ftp"
fi
# 4. Beispiel-Konfigurationen erstellen
echo ""
echo "4. Erstelle Beispiel-Konfigurationen..."
# Beispiel 1: cube-switch-01.cfg
cat > "$CONFIG_DIR/cube-switch-01.cfg" << 'EOF'
# Dell N2048 Switch Backup Konfiguration
# Datei: switch-01.cfg
#===========================================
# SWITCH-ZUGANGSDATEN (ERFORDERLICH)
#===========================================
SWITCH_IP="192.168.1.200"
SWITCH_USER="admin"
SWITCH_PASSWORD="Ihr_Switch_Passwort_Hier"
#===========================================
# FTP-SERVER-KONFIGURATION (ERFORDERLICH)
#===========================================
FTP_SERVER="192.168.1.201"
FTP_USER="switch-backup"
FTP_PASSWORD="password"
FTP_PATH="switch-backup"
#===========================================
# BACKUP-EINSTELLUNGEN (OPTIONAL)
#===========================================
SWITCH_NAME="switch-01"
CONFIG_TYPE="startup-config"
MAX_BACKUPS=10
SKIP_SSH_TEST=true
#===========================================
# TIMEOUT-EINSTELLUNGEN (OPTIONAL)
#===========================================
SSH_TIMEOUT=15
COMMAND_TIMEOUT=30
COPY_TIMEOUT=90
EOF
echo " ✓ Erstellt: $CONFIG_DIR/cube-switch-01.cfg"
# Beispiel 2: datacenter-core.cfg
cat > "$CONFIG_DIR/datacenter-core.cfg" << 'EOF'
# Dell N2048 Switch Backup Konfiguration
# Datei: datacenter-core.cfg
#===========================================
# SWITCH-ZUGANGSDATEN (ERFORDERLICH)
#===========================================
SWITCH_IP="192.168.1.10"
SWITCH_USER="admin"
SWITCH_PASSWORD="Admin123!"
#===========================================
# FTP-SERVER-KONFIGURATION (ERFORDERLICH)
#===========================================
FTP_SERVER="192.168.1.100"
FTP_USER="backup"
FTP_PASSWORD="BackupPass123"
FTP_PATH="network-backups"
#===========================================
# BACKUP-EINSTELLUNGEN (OPTIONAL)
#===========================================
SWITCH_NAME="dc-core"
CONFIG_TYPE="running-config"
MAX_BACKUPS=15
SKIP_SSH_TEST=false
#===========================================
# TIMEOUT-EINSTELLUNGEN (OPTIONAL)
#===========================================
SSH_TIMEOUT=20
COMMAND_TIMEOUT=45
COPY_TIMEOUT=120
EOF
echo " ✓ Erstellt: $CONFIG_DIR/datacenter-core.cfg"
# Beispiel 3: Template für neue Switches
cat > "$CONFIG_DIR/template.cfg" << 'EOF'
# Dell N2048 Switch Backup Konfiguration Template
# Kopieren und anpassen für neue Switches
#===========================================
# SWITCH-ZUGANGSDATEN (ERFORDERLICH)
#===========================================
SWITCH_IP="192.168.1.XXX"
SWITCH_USER="admin"
SWITCH_PASSWORD="PASSWORT_HIER_EINTRAGEN"
#===========================================
# FTP-SERVER-KONFIGURATION (ERFORDERLICH)
#===========================================
FTP_SERVER="192.168.1.100"
FTP_USER="backup-user"
FTP_PASSWORD="FTP_PASSWORT_HIER"
FTP_PATH="switch-backup"
#===========================================
# BACKUP-EINSTELLUNGEN (OPTIONAL)
#===========================================
SWITCH_NAME="switch-XX" # WICHTIG: Max 8 Zeichen!
CONFIG_TYPE="startup-config" # oder "running-config"
MAX_BACKUPS=10
SKIP_SSH_TEST=true
#===========================================
# TIMEOUT-EINSTELLUNGEN (OPTIONAL)
#===========================================
SSH_TIMEOUT=15
COMMAND_TIMEOUT=30
COPY_TIMEOUT=90
EOF
echo " ✓ Erstellt: $CONFIG_DIR/template.cfg"
# 5. Berechtigung setzen
echo ""
echo "5. Setze Berechtigungen..."
chmod 600 "$CONFIG_DIR"/*.cfg
echo " ✓ Konfigurationsdateien sind nur für Owner lesbar (600)"
# 6. Zusammenfassung
echo ""
echo "=========================================="
echo "SETUP ABGESCHLOSSEN"
echo "=========================================="
echo ""
echo "Konfigurationsverzeichnis: $CONFIG_DIR"
echo ""
echo "Erstelle Konfigurationen:"
echo " 1. cube-switch-01.cfg (Beispiel basierend auf Ihren Daten)"
echo " 2. datacenter-core.cfg (Alternatives Beispiel)"
echo " 3. template.cfg (Vorlage für neue Switches)"
echo ""
echo "Nächste Schritte:"
echo " 1. Passen Sie die Konfigurationsdateien an:"
echo " nano $CONFIG_DIR/cube-switch-01.cfg"
echo ""
echo " 2. Testen Sie das Backup:"
echo " ./switch_backup.sh cube-switch-01"
echo ""
echo " 3. Für neue Switches:"
echo " cp $CONFIG_DIR/template.cfg $CONFIG_DIR/neuer-switch.cfg"
echo " nano $CONFIG_DIR/neuer-switch.cfg"
echo " ./switch_backup.sh neuer-switch"
echo ""
echo " 4. Crontab für automatische Backups:"
echo " crontab -e"
echo " # Täglich um 2:00 Uhr"
echo " 0 2 * * * /pfad/zum/switch_backup.sh cube-switch-01"
echo ""
echo "Verfügbare Konfigurationen:"
ls -la "$CONFIG_DIR"/*.cfg | awk '{print " - " $9}' | sed "s|$CONFIG_DIR/||g; s|\.cfg||g"