change interface names
This commit is contained in:
parent
69b936ef9c
commit
5e1c42a84f
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# Verzeichnis für die systemd-Netzwerk-Units
|
# Verzeichnis für die systemd-Netzwerk-Units
|
||||||
output_dir="/etc/systemd/network"
|
output_dir="/etc/systemd/network"
|
||||||
|
interfaces_file="/etc/network/interfaces"
|
||||||
|
|
||||||
# Überprüfen, ob das Ausgabe-Verzeichnis existiert, ansonsten erstellen
|
# Überprüfen, ob das Ausgabe-Verzeichnis existiert, ansonsten erstellen
|
||||||
if [ ! -d "$output_dir" ]; then
|
if [ ! -d "$output_dir" ]; then
|
||||||
@ -11,18 +12,62 @@ fi
|
|||||||
# Alle Netzwerk-Interfaces auslesen und unerwünschte Interfaces herausfiltern
|
# Alle Netzwerk-Interfaces auslesen und unerwünschte Interfaces herausfiltern
|
||||||
interfaces=$(ls /sys/class/net | grep -Ev '^(lo|tap|vlan|vmbr|bonding|fw|veth)')
|
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
|
# Für jedes Interface ein systemd-Netzwerk-File erstellen
|
||||||
for interface in $interfaces; do
|
for interface in $interfaces; do
|
||||||
mac_address=$(cat /sys/class/net/$interface/address)
|
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
|
cat <<EOF > $file
|
||||||
[Match]
|
[Match]
|
||||||
MACAddress=$mac_address
|
MACAddress=$mac_address
|
||||||
|
|
||||||
[Link]
|
[Link]
|
||||||
Name=$interface
|
Name=$new_interface_name
|
||||||
EOF
|
EOF
|
||||||
echo "Datei erstellt: $file"
|
echo "Datei erstellt: $file"
|
||||||
|
# Hinzufügen zur Assoziativen Liste
|
||||||
|
interface_map[$interface]=$new_interface_name
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "systemd-Netzwerk-Units wurden erfolgreich in $output_dir erstellt."
|
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