33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
|
|
#!/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
|