#!/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' |grep -v "^$" &>>/tmp/oldname.txt
ip addr|grep -v 'lo'|grep -v valid|grep -v inet |awk '{print $2}'|grep -A 1 '^e'|grep -v 'e' &>> /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/
mv $dir1/60-net.rules /tmp/
for b in `cat /tmp/oldname.txt`
do
for a in `cat /tmp/mac.txt`
do
i=0
while [ $i -lt $n ]
do
echo "$rules, ATTR{address}==\"$a\", NAME=\"eth$i\", GOTO=\"net_end\"" &>>$dir1/60-net.rules
mv $dir/ifcfg-$b $dir/ifcfg-eth$i
sed -i 's/NAME/#NAME/g' $dir/ifcfg-eth$i
# sed -i \'/NAME/i\NAME=eth$i\' $dir/ifcfg-eth$i
echo "NAME=eth$i" &>> $dir/ifcfg-eth$i
sed -i 's/DEVICE/#DEVICE/g' $dir/ifcfg-eth$i
echo "DEVICE=eth$i" &>> $dir/ifcfg-eth$i
# sed -i \'/DEVICE/i\DEVICE=eth$i\' $dir/ifcfg-eth$i
echo "MACADDR=$a" &>> $dir/ifcfg-eth$i
let i++
done
done
done
更改网卡名称脚本 优化版
最新推荐文章于 2024-12-03 20:08:03 发布