linuxOS_AP05/debian/binary/usr/bin/restore_mac.sh

33 lines
1.1 KiB
Bash
Raw Normal View History

2026-01-28 09:18:26 +00:00
#!/bin/sh
# MAC地址恢复脚本
# 从vendor_storage读取MAC地址并恢复到/etc/network/interfaces
# 保持大写格式
INTERFACES_FILE="/etc/network/interfaces"
# 从vendor_storage读取MAC (hex格式)
MAC_HEX=$(vendor_storage -r VENDOR_LAN_MAC_ID -t hex 2>/dev/null | \
grep -A1 "VENDOR_LAN_MAC_ID:" | tail -1 | \
awk '{print $2$3$4$5$6$7}' | tr 'a-f' 'A-F')
if [ -n "$MAC_HEX" ] && [ ${#MAC_HEX} -eq 12 ]; then
# 转换为标准MAC格式: 90A9F7300001 -> 90:A9:F7:30:00:01
MAC_ADDR=$(echo $MAC_HEX | sed 's/../&:/g;s/:$//')
# 更新interfaces文件
if grep -q "hwaddress ether" $INTERFACES_FILE; then
sed -i "s/hwaddress ether .*/hwaddress ether $MAC_ADDR/" $INTERFACES_FILE
echo "MAC address updated: $MAC_ADDR"
else
# 在eth0配置后添加MAC地址
sed -i "/iface eth0 inet/a \ hwaddress ether $MAC_ADDR" $INTERFACES_FILE
echo "MAC address added: $MAC_ADDR"
fi
echo "MAC address restored from vendor_storage: $MAC_ADDR"
exit 0
else
echo "Warning: No valid MAC address in vendor_storage"
exit 1
fi