#!/bin/bash rm serverliste.csv wget http://fileserver.fritz.box/Mobaxterm/Homelab.mxtsessions # Eingabedatei INPUT_FILE="Homelab.mxtsessions" # Ausgabedatei OUTPUT_FILE="serverliste.csv" # Kopfzeile der CSV-Datei echo "Name,Adresse / Host" > "$OUTPUT_FILE" # Alle Zeilen in Bookmarks-Abschnitten durchsuchen 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] gsub(/.*\\n/, "", name) print name "," host } ' "$INPUT_FILE" >> "$OUTPUT_FILE" echo "Export abgeschlossen: $OUTPUT_FILE" # Datei mit Servernamen und IP-Adressen server_file="serverliste.csv" # Arrays für Servernamen und IP-Adressen initialisieren server_names=() ip_addresses=() # Datei einlesen und Arrays füllen while IFS="," read -r name ip; do server_names+=("$name") ip_addresses+=("$ip") done < <(tail -n +2 "$server_file") # Hauptmenü in einer Schleife anzeigen while true; do # Erzeuge die Einträge für das Whiptail-Menü menu_entries=() for i in "${!server_names[@]}"; do menu_entries+=("$i" "${server_names[i]} (${ip_addresses[i]})") done menu_entries+=("q" "Ende") # Zeige das Whiptail-Menü an gui_choice=$(whiptail --title "Serverauswahl" --menu "Wähle einen Server aus:" 20 78 10 "${menu_entries[@]}" 3>&1 1>&2 2>&3) # Überprüfe die Auswahl if [[ $? -ne 0 || "$gui_choice" == "q" ]]; then echo "Programm beendet." exit 0 fi # Verarbeite die Serverauswahl index=$gui_choice echo "Verbinde zu ${server_names[index]} (${ip_addresses[index]})..." ssh ${ip_addresses[index]} done