#!/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"