#!/bin/bash # Konfigurationsvariablen FILE_URL="http://fileserver.fritz.box/Mobaxterm/Homelab.mxtsessions" INPUT_FILE="Homelab.mxtsessions" OUTPUT_FILE="serverliste.csv" # Datei herunterladen (nur wenn erfolgreich, dann weitermachen) if wget -q "$FILE_URL" -O "$INPUT_FILE"; then echo "Datei erfolgreich heruntergeladen." else echo "Fehler: Datei konnte nicht heruntergeladen werden. Skript wird beendet." exit 1 fi # CSV-Datei vorbereiten echo "Name,Adresse / Host" > "$OUTPUT_FILE" # Daten aus der MobaXterm-Datei extrahieren und in CSV schreiben awk ' /^\[Bookmarks/ { in_section=1; next } /^\[/ && !/^\[Bookmarks/ { in_section=0 } in_section && /=#109#0%/ { split($0, parts, "=") name = parts[1] split(parts[2], details, "%") host = details[2] # Hier ist die IP oder URL gsub(/.*\\n/, "", name) print name "," host } ' "$INPUT_FILE" >> "$OUTPUT_FILE" echo "Export abgeschlossen: $OUTPUT_FILE" # Arrays für Menü vorbereiten declare -a server_names declare -a ip_addresses # CSV ohne Kopfzeile einlesen while IFS="," read -r name ip; do server_names+=("$name") ip_addresses+=("$ip") done < <(tail -n +2 "$OUTPUT_FILE") # Menü anzeigen while true; do menu_entries=() for i in "${!server_names[@]}"; do menu_entries+=("$i" "${server_names[i]} (${ip_addresses[i]})") done menu_entries+=("q" "Ende") gui_choice=$(whiptail --title "Serverauswahl" \ --menu "Wähle einen Server aus:" 20 78 10 \ "${menu_entries[@]}" 3>&1 1>&2 2>&3) if [[ $? -ne 0 || "$gui_choice" == "q" ]]; then echo "Programm beendet." exit 0 fi index=$gui_choice echo "Verbinde zu ${server_names[index]} (${ip_addresses[index]})..." ssh ${ip_addresses[index]} done