linux 修改网卡名-自动化运维linux

#!/bin/bash
ip=$(ip add | grep -w  "BROADCAST" | awk -F":" 'NR==1{print $2}' | sed s/[[:space:]]//g)
echo "网卡名称为:" $ip
                        # 定义一个变量IP 为:
                        # 查看网卡信息,grep -w 以文档形式匹配单词:flags
                        # awk -F:  指定冒号为分隔符
                        # NR==1得到结果后赛选第一行; {print $1} 打印第一列;
                        # 相当于坐标第一行第一列 :'NR==1 (print$1)'
                        # sed s/[[:space:]]//g 删除所有空格
ifcfg=$(find /etc -name *$ip)
echo "网卡路径为:" $ifcfg
                        # 定义一个变量ifcfg 他的值为另一个另一个变量
                        # find /etc   在etc  目录下去找名字为:
                        # *$ip为模糊匹配:星号是该名字前还有字符
 
named=eth0
                                                # 修改网卡为eth0
sed -i "s/NAME.*/NAME=$named/g" $ifcfg
sed -i "s/DEVICE.*/DEVICE=$named/g" $ifcfg
newifcfg=$(echo $ifcfg | sed 's/ifcfg.*/ifcfg-'$named'/g')
                        # 使用管道修改变量字符串
echo "新网卡名为:" $newifcfg
mv $ifcfg $newifcfg
grub=$(grep -r biosdevname /etc/default | awk -F = '{print $0}')
                            # 定义变量grub 编辑
                            # grep -r 查看字符串为biosdevname,  在路径  
                            # awk -F 分段显示全部
if [[ "$grub" = ""  ]]
then
sed -i 's/crashkernel/crashkernel=auto net.ifnames=0 biosdevname=0/g'  /etc/default/grub
                                                        # 修改
echo "$grub修改后该行内容为:" $grub
else
echo "greb 文件已经修改,无需操作"
fi
                            # 修改
grub2-mkconfig -o /boot/grub2/grub.cfg 
                            # 运行
mac=$(ifconfig | grep -w ether | awk -F" " 'NR==1{print$2}')
                            # 获取 mac 地址:
                            # grep -w 匹配单词,-w 以world 文本方式匹配inet6单词
                            # awk -F指定分隔符符号为空格
                            # NR==1{print $1} 坐标,行号为1行,打印第一列
echo "主网卡mac 地址为:$mac"
touch /etc/udev/rules.d/70-persistent-net.rules 
rules=$(grep -r net /etc/udev/rules.d/70-persistent-net.rules | awk -F = '{print$0}' )
if [[ "$rules"="" ]]
then
echo "
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR{address}==$mac,ATTR{type}=="1" ,KERNEL=="eth*",NAME=$named
" >>/etc/udev/rules.d/70-persistent-net.rules
else
echo "/etc/udev/rules.d/70-persistent-net.rules
配置文件存在,不需要修改
 "
fi
rm -rf 1.sh
echo "网卡名已经修改为:$named ; 即将删除此脚本并重新启动"
reboot
sed -i '/^$/d' 1.sh ; chmod 755 1.sh ; ./1.sh
上一篇:Open Source Application


下一篇:linux 批量添加IP白名单脚本