230 lines
6.2 KiB
Bash
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"
|