linux 网卡名绑定mac地址吗,将MAC地址和网卡设备名绑定的脚本

#!/bin/sh

#

# Author xiaosuo # Licence GPL2 or above

# Check if the network card is mapped correctly

#

CONFFILE=/etc/conf.d/ifmap.conf

if [ ! -e $CONFFILE  ]; then

echo "config file:$CONFFILE isn't found"

exit

fi

while read line; do

eth_name="";

eth_addr="";

# skip the comment

if echo $line | grep -q -e "^#.*$" ; then

continue;

fi

eth_name=`echo $line | awk '{print $1}'`

eth_addr=`echo $line | awk '{print $2}' | tr "[:upper:]" "[:lower:]"`

if ip link show dev $eth_name &>/dev/null; then

real_addr=`ip link show dev $eth_name | grep 'link/ether' | awk '{print $2}'`

if [ $real_addr = $eth_addr ]; then

continue;

fi

fi

# search for the correct link address

echo "$eth_name($eth_addr) is changed"

got="NO"

for (( i=0; i < 256 ; i ++ )) ; do

search_name="eth$i"

if ip link show dev $search_name &>/dev/null; then

search_addr=`ip link show dev $search_name | grep 'link/ether' | awk '{print $2}'`

if [ $search_addr = $eth_addr ]; then

got="YES"

break;

fi

fi

done

if [ $got = "NO" ]; then

echo "Cann't config $eth_name"

continue;

fi

# swap the dev name

echo substitute $eth_name for $search_name

ip link set dev $eth_name down &>/dev/null

ip link set dev $search_name down &>/dev/null

ip link set dev $eth_name name eth_tmp &>/dev/null

ip link set dev $search_name name $eth_name &>/dev/null

ip link set dev eth_tmp name $search_name &>/dev/null

ip link set dev $eth_name up &>/dev/null

ip link set dev $search_name up &>/dev/null

/etc/init.d/net.$eth_name restart

/etc/init.d/net.$search_name restart

done < $CONFFILE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值