Я работаю над встроенным проектом Linux, где я стремлюсь создать встроенное приложение веб -сервера, которое я могу изменить сетевые настройки с помощью подпроцесса с Python для установки устройства на статический IP -адрес, подсеть и адрес -шлюз или DHCP. Ниже ... Любопытно для любых отзывов, если мой подход глупый или не хороший. Я не могу понять, как обойтись без отключения NetPlan. < /Li>
< /ul>
#!/bin/bash
# Detect the active Ethernet interface (not lo or wlan0)
INTERFACE=$(ip link show | awk -F: '/^[0-9]+: e/{print $2}' | head -n 1 | tr -d ' ')
if [ -z "$INTERFACE" ]; then
echo "❌ No active Ethernet interface detected."
exit 1
fi
echo "✅ Detected interface: $INTERFACE"
# Define directories and file paths
NETWORK_DIR="/etc/systemd/network"
NETPLAN_DIR="/etc/netplan"
NETPLAN_BACKUP_DIR="/etc/netplan/backup"
DHCP_FILE="$NETWORK_DIR/10-dhcp-$INTERFACE.network"
STATIC_FILE="$NETWORK_DIR/10-static-$INTERFACE.network"
# Create necessary directories
sudo mkdir -p "$NETWORK_DIR"
sudo mkdir -p "$NETPLAN_BACKUP_DIR"
# Backup existing Netplan configs
if ls "$NETPLAN_DIR"/*.yaml 1> /dev/null 2>&1; then
sudo mv "$NETPLAN_DIR"/*.yaml "$NETPLAN_BACKUP_DIR"/
echo "✅ Netplan configuration files moved to backup: $NETPLAN_BACKUP_DIR"
else
echo "ℹ️ No Netplan configuration files found to backup."
fi
# Create DHCP configuration file
sudo tee "$DHCP_FILE" > /dev/null /dev/null
#!/bin/bash
# Detect the active Ethernet interface
INTERFACE=$(ip link show | awk -F: '/^[0-9]+: e/{print $2}' | head -n 1 | tr -d ' ')
if [ -z "$INTERFACE" ]; then
echo "No active Ethernet interface detected."
exit 1
fi
# Create the DHCP configuration file
sudo tee "/etc/systemd/network/10-dhcp-$INTERFACE.network" > /dev/null
Подробнее здесь: [url]https://stackoverflow.com/questions/79511386/web-app-that-can-change-networking-settings[/url]
Я работаю над встроенным проектом Linux, где я стремлюсь создать встроенное приложение веб -сервера, которое я могу изменить сетевые настройки с помощью подпроцесса с Python для установки устройства на статический IP -адрес, подсеть и адрес -шлюз или DHCP. Ниже ... Любопытно для любых отзывов, если мой подход глупый или не хороший. Я не могу понять, как обойтись без отключения NetPlan. < /Li> < /ul> [code]#!/bin/bash
# Detect the active Ethernet interface (not lo or wlan0) INTERFACE=$(ip link show | awk -F: '/^[0-9]+: e/{print $2}' | head -n 1 | tr -d ' ')
if [ -z "$INTERFACE" ]; then echo "❌ No active Ethernet interface detected." exit 1 fi
# Backup existing Netplan configs if ls "$NETPLAN_DIR"/*.yaml 1> /dev/null 2>&1; then sudo mv "$NETPLAN_DIR"/*.yaml "$NETPLAN_BACKUP_DIR"/ echo "✅ Netplan configuration files moved to backup: $NETPLAN_BACKUP_DIR" else echo "ℹ️ No Netplan configuration files found to backup." fi