#!/bin/bash # Verzeichnis für die systemd-Netzwerk-Units output_dir="/etc/systemd/network" interfaces_file="/etc/network/interfaces" # Überprüfen, ob das Ausgabe-Verzeichnis existiert, ansonsten erstellen if [ ! -d "$output_dir" ]; then mkdir -p "$output_dir" fi # Alle Netzwerk-Interfaces auslesen und unerwünschte Interfaces herausfiltern interfaces=$(ls /sys/class/net | grep -Ev '^(lo|tap|vlan|vmbr|bonding|fw|veth)') # Speichern der alten und neuen Interface-Namen in einer Assoziativen Liste declare -A interface_map # Speichern der alten und neuen Bridge-Ports in einer Assoziativen Liste declare -A bridge_port_map # Für jedes Interface ein systemd-Netzwerk-File erstellen for interface in $interfaces; do mac_address=$(cat /sys/class/net/$interface/address) # Neuer Interface-Name mit "net" am Anfang new_interface_name="net$interface" file="$output_dir/10-$new_interface_name.link" cat < $file [Match] MACAddress=$mac_address [Link] Name=$new_interface_name EOF echo "Datei erstellt: $file" # Hinzufügen zur Assoziativen Liste interface_map[$interface]=$new_interface_name done echo "systemd-Netzwerk-Units wurden erfolgreich in $output_dir erstellt." # Aktualisieren der /etc/network/interfaces Datei echo "Aktualisiere /etc/network/interfaces Datei..." while IFS= read -r line; do if [[ $line =~ ^bridge_ports ]]; then # Extrahieren der Bridge-Ports bridge_ports=$(echo "$line" | awk '{for (i=2;i<=NF;i++) print $i}') new_bridge_ports="" # Aktualisieren der Bridge-Ports for port in $bridge_ports; do if [[ -n ${interface_map[$port]} ]]; then new_bridge_ports+=" ${interface_map[$port]}" bridge_port_map[$port]=${interface_map[$port]} else new_bridge_ports+=" $port" fi done echo "bridge_ports$new_bridge_ports" >> "$interfaces_file.new" else echo "$line" >> "$interfaces_file.new" fi done < "$interfaces_file" # Die neue Datei über die alte Datei kopieren mv "$interfaces_file.new" "$interfaces_file" echo "/etc/network/interfaces Datei erfolgreich aktualisiert." # Ausgabe der aktualisierten Bridge-Ports echo "Aktualisierte Bridge-Ports:" for old_port in "${!bridge_port_map[@]}"; do new_port=${bridge_port_map[$old_port]} echo "$old_port -> $new_port" done