change interface names
This commit is contained in:
parent
69b936ef9c
commit
5e1c42a84f
@ -2,6 +2,7 @@
|
||||
|
||||
# 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
|
||||
@ -11,18 +12,62 @@ 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)
|
||||
file="$output_dir/10-net$interface.link"
|
||||
# Neuer Interface-Name mit "net" am Anfang
|
||||
new_interface_name="net$interface"
|
||||
file="$output_dir/10-$new_interface_name.link"
|
||||
cat <<EOF > $file
|
||||
[Match]
|
||||
MACAddress=$mac_address
|
||||
|
||||
[Link]
|
||||
Name=$interface
|
||||
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
|
Loading…
x
Reference in New Issue
Block a user