linux修改网卡名称
linux修改网卡名称脚本,在生活中大家在安装服务器中都会遇到装完系统后发现网卡名称为ens esp等等杂七杂八的网卡名,管理起来特别不方便,因此我写了一个脚本供大家参考,可直接复制粘贴,执行完脚本后需重启服务器方可生效!
#!/bin/bash
n=`ip addr|awk -F ':' '{print $2}'|grep -v "^$"|grep e|wc -l`
dir="/etc/sysconfig/network-scripts"
dir1="/lib/udev/rules.d"
date=`date +%Y-%m-%d`
num=`ls /etc/sysconfig/network-scripts/|grep ifcfg-e|wc -l`
rules="ACTION==\"add\", SUBSYSTEM==\"net\", DRIVERS==\"?*\", ATTR{type}==\"1\""
ip addr|awk -F ':' '{print $2}'|grep -v "^$"|grep e&>>/tmp/oldname.txt
ip addr|grep ether|awk '{print $2}' &>> /tmp/mac.txt
sed -i '1'd /tmp/oldname.txt
sed -i 's/ //g' /tmp/oldname.txt
#network interface backup
mkdir $dir/network-$date.bak
cp $dir/ifcfg-e* $dir/network-$date.bak
cp $dir1/60-net.rules $dir/network-$date.bak/
#create a new network card name
for i in {0..5}
do
echo "ifcfg-eth$i" &>> /tmp/newname.txt
done
mac=`sed -n '1'p /tmp/mac.txt`
mac2=`sed -n '2'p /tmp/mac.txt`
mac3=`sed -n '3'p /tmp/mac.txt`
mac4=`sed -n '4'p /tmp/mac.txt`
mac5=`sed -n '5'p /tmp/mac.txt`
mac6=`sed -n '6'p /tmp/mac.txt`
olda=`sed -n '1'p /tmp/oldname.txt`
oldb=`sed -n '2'p /tmp/oldname.txt`
oldc=`sed -n '3'p /tmp/oldname.txt`
oldd=`sed -n '4'p /tmp/oldname.txt`
olde=`sed -n '5'p /tmp/oldname.txt`
oldf=`sed -n '6'p /tmp/oldname.txt`
newone=`sed -n '1'p /tmp/newname.txt`
newtwo=`sed -n '2'p /tmp/newname.txt`
newthree=`sed -n '3'p /tmp/newname.txt`
newfore=`sed -n '4'p /tmp/newname.txt`
newfive=`sed -n '5'p /tmp/newname.txt`
newsix=`sed -n '6'p /tmp/newname.txt`
#determine how many network cards there are
if [ $n -eq 1 ]
then
echo "$rules, ATTR{address}==\"$mac\", NAME=\"eth0\", GOTO=\"net_end\"" &>$dir1/60-net