嘟嘟社区

求一个shell脚本获取网卡mac地址


本帖最后由 KDE 于 2022-5-2 03:03 编辑

网卡可能叫enp3s0 enp3 enp166
只有一块网卡

DD 系统后需要设置 IP 地址 不然不会DHCP获取任何地址
搞来设置 ubuntu 的 dhcp 或者静态地址

#!/bin/sh -e
# rc.local

ssh-keygen -A

sleep 1m

$MACADDR=获取网卡MAC地址的代码

cat <<EOF> /etc/netplan/config.yaml
network:
    version: 2
    renderer: networkd
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: true
            match:
                macaddress: $MACADDR
            set-name: eth0
EOF
netplan apply

exit 0

一般不是有个 lo 的网卡吗?
本帖最后由 zxxx 于 2022-5-2 03:15 编辑

Debian

  1. MACADDR=`cat /sys/class/net/$(ip route show default | awk ‘/default/ {print $5}’)/address`
  2. echo $MACADDR
  3. 02:00:11:00:11:11

复制代码

[email protected]:~# ip addr|grep ether|awk -F "[ ]+" ‘{print $3}’|sed ‘s/://g’

如果保留冒号
[email protected]:~# ip addr|grep ether|awk -F "[ ]+" ‘{print $3}’

需要过滤网卡,多网卡会有多个mac

rhel9 ubuntu2204 有效!感谢。

rogerskys 发表于 2022-5-2 03:26
[email protected]:~# ip addr|grep ether|awk -F "[ ]+" ‘{print $3}’|sed ‘s/://g’

如果保留冒号

全都有效,大佬厉害了!

rogerskys 发表于 2022-5-2 03:26
[email protected]:~# ip addr|grep ether|awk -F "[ ]+" ‘{print $3}’|sed ‘s/://g’

如果保留冒号

$MACADDR=ip addr|grep ether|awk -F "[ ]+" ‘{print $3}’
echo $MACADDR

大佬请问下怎么赋予变量?
刚才我加() ""都提示错误

MYMAC=`ip add | grep link/ether | awk ‘{print $2}’`
echo $MYMAC

KDE 发表于 2022-5-2 03:51
MYMAC=`ip add | grep link/ether | awk ‘{print $2}’`
echo $MYMAC

加上反引号就可以了,A=`echo "123"` 会先执行反引号里面的命令