实验说明:

在许多自动化任务中,脚本往往是通过读取配置文件来获取信息的,红帽系的系统自升级之后(CentOS7/RHEL7),网卡命名采用“一致性网络设备接口”的命名方法,导致不同设备的不同网卡名称各不相同。为了统一网卡名称,方便配置文件的书写,不得不修改网卡名称。


实验环境:


宿主机系统   :Fedora 28 WorkStation
虚拟机管理器 :Virtual-Box  5.2.16
虚拟机配置   :系统:CentOS 7.2 1511  (minimal)
             网络:enp0s3   Host-Only  192.168.56.0/24
                  enp0s8   Host-Only  192.168.56.0/24
                  enp0s9   Host-Only  192.168.56.0/24
                  enp0s10  Host-Only  192.168.56.0/24

实验步骤:

  1. 查看当前网卡设备数目及名称

     [root@localhost ~]$ ls -l /etc/sysconfig/network-scripts | awk  '/ifcfg-e/ {print $9}'
    ifcfg-enp0s10
    ifcfg-enp0s3
    ifcfg-enp0s8
    ifcfg-enp0s9
  2. 备份系统默认网卡配置文件

     [root@localhost ~]$ cd /etc/sysconfig/network-scripts/
    [root@localhost network-scripts]$ nic_list=`ls -l /etc/sysconfig/network-scripts|awk '/ifcfg-e/ {print $9}'`
    [root@localhost network-scripts]$ for nic_name in $nic_list; do
    > cp $nic_name $nic_name.bak; done
  3. 重命名网卡配置文件名

     [root@localhost network-scripts]$ i=0
    [root@localhost network-scripts]$ nic_list=`ls -l /etc/sysconfig/network-scripts|awk '/ifcfg-e/ {print $9}'`
    [root@localhost network-scripts]$ for nic_name in $nic_list; do
    > mv $nic_name ifcfg-eth${i};
    > i=$(expr $i + 1);
    > done
  4. 修改网卡配置文件

     [root@localhost network-scripts]$ for new_nic_name in $new_nic_list; do
    > name=$(echo $new_nic_name|cut -b 7-);
    > sed -i "s/NAME=.*/NAME=$name/g" $new_nic_name;
    > sed -i "s/DEVICE=.*/DEVICE=$name/g" $new_nic_name;
    > sed -i 's/ONBOOT=no/ONBOOT=yes/g' $new_nic_name
    > done
  5. 修改/etc/default/grub文件,禁用biosdevname程序

     [root@localhost network-scripts]$ sed -i '/GRUB_CMDLINE_LINUX=/d' /etc/default/grub
    [root@localhost network-scripts]$ echo 'GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root \
    > rd.lvm.lv=centos/swap crashkernel=auto \
    > net.ifnames=0 biosdevname=0 rhgb quiet"' \
    > >> /etc/default/grub
  6. 重新生成GRUB配置并更新内核参数

     [root@localhost network-scripts]$ grub2-mkconfig -o /boot/grub2/grub.cfg
  7. 重启

     [root@localhost ~]$ reboot now
  8. 查询网卡信息

     [root@localhost ~]$ ip a | grep eth[0-9]
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.56.114/24 brd 192.168.56.255 scope global dynamic eth0
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.56.115/24 brd 192.168.56.255 scope global dynamic eth1
    4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.56.116/24 brd 192.168.56.255 scope global dynamic eth2
    5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.56.117/24 brd 192.168.56.255 scope global dynamic eth3

PS:CentOS7 修改默认网卡名称脚本 (change_default_nic_name.sh),直接拷贝就可使用。

 #!/usr/bin/bash
#this script will change default ifcfg-enoxxxx/ifcfg-enpxxxx to ifcfg-ethx ls -l /etc/sysconfig/network-scripts|awk '/ifcfg-eno[0-9]*/ {print $9}' > default_nic_name.txt
i=0
cat default_nic_name.txt| while read line
do
cd /etc/sysconfig/network-scripts
name=$(echo $line|cut -b 7-)
cp $line ${line}.bak
sed -i "s/$name/eth${i}/g" $line
sed -i 's/ONBOOT=no/ONBOOT=yes/g' $line
mv $line ifcfg-eth${i}
i=$(expr $i + 1) done sed -i '/GRUB_CMDLINE_LINUX=/d' /etc/default/grub
echo 'GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"' >> /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

[提供可行性脚本] RHEL 7/CentOS 7/Fedora28 重命名网卡名称的更多相关文章

  1. [提供可行性脚本] RHEL/CentOS 7 多节点SSH免密登陆

    实验说明: 在自动化部署时,会经常SSH别的机器去操作,然而每次的密码认证却很令人烦躁,尤其是很长的密码,因此SSH免密登陆就显得必不可少: 在机器数目很多的时候,使用更过的往往是Ansible分发并 ...

  2. Linux CentOS删除或重命名文件夹和文件的办法

    Linux.CentOS操作系统下如何删除和重命名文件夹呢?办法如下: 一.Linux.CentOS下重命名文件和文件夹 mv:move 用移动文件命令就可以了,因为linux系统没有专门的重命名命令 ...

  3. 配置 CentOS 7 的网络,及重命名网卡名

    Centos 安装时应配置网络,如果当时没配置好,则装完系统后, 也可通过修改配置文件并重启网络服务进行配置. 说明:CentOS 7.0默认安装好之后是没有自动开启网络连接的! cd /etc/sy ...

  4. CentOS 7命令行修改网卡名称

    在CentOS学习中,配置多个网卡,配置独立的IP地址,为网卡设置新的名称等,已经是必备技能,经小编亲测,以下方法能修改系统的网卡名称,操作步骤和截图一并和小伙伴们分享, 希望对大家的学习和使用有所帮 ...

  5. 如何在RHEL7或CentOS 7系统下修改网卡名称(亲测有效~!)

    亲测有效的更改RHEL7或CentOS 7的网卡名称的方法, 按照以下4步来操作就可以实现! Step 1 :网卡配置文件名称重命名为eth0[root@localhost ~]# ifconfige ...

  6. [图文][提供可行性脚本] CentOS 7 Fencing+Pacemaker三节点搭建高可用集群

    实验说明: 实验环境: 宿主机系统   :Fedora 28 WorkStation 虚拟机管理器 :Virt-Manager 1.5.1 虚拟机配置   :ha1  CentOS 7.2 1511 ...

  7. [图文]RHEL 7/CentOS 7/Fedora28 联网初始化

    实验说明: 入门Linux,一般会遇到以下几个问题: 从哪里获取LInux镜像? 如何通过镜像文件安装Linux系统? 安装实体机还是虚拟机? 安装完系统如何配置网络? 虚拟机的网络配置与实体机有何不 ...

  8. windows聚焦图片文件重命名bash脚本

    win10聚焦路径为: %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalStat ...

  9. CentOS 7修改网卡名称

    CentOS 7 修改网卡名为eth0 标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 CentOS7的网卡名称太长,这不符合我们的使用习惯, ...

随机推荐

  1. 18.存储过程--SQL

    好文要顶: sQL存储过程的优缺点 SQL Server 存储过程 一.创建.使用存储过程 Oracle版本: CREATE PROCEDURE MailingListCount ( ListCoun ...

  2. 题解 UVA11354 【Bond】

    并查集+按秩合并 传送门 大意:给出一张n个点m条边的无向图, 每条边有一个权值,有q个询问, 每次给出两个点s.t,找一条路, 使得路径上的边的最大权值最小. 我们可以发现,跑最小生成树会跑挂, 那 ...

  3. Netty(7)-传对象

    改造timer,即客户端与服务端建立连接后,服务端主动向客户端发送当前时间. server: ch.pipeline().addLast(new TimeEncoder()); ch.pipeline ...

  4. NETCOREAPI 跨域处理

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题: 浏览器安全限制了前端脚本跨站点的访问资源,所 ...

  5. 线程池ThreadPoolExecutor的学习

    我们知道,ExecutorService是一个抽象出线程池的一个接口,然后我们在使用线程池的时候,用的是Executors工具类中的一系列newCachedThreadPool() 等类似的方法,这些 ...

  6. Spark Mllib里的Mllib基本数据类型(图文详解)

    不多说,直接上干货! Spark Mllib基本数据类型,根据不同的作用和应用场景,分为四种不同的类型 1.Local  vector : 本地向量集,主要向spark提供一组可进行操作的数据集合 2 ...

  7. PHP的时间函数strtotime

    时间加减 [php] view plaincopy <?php //获取本地 提取年份+1 $date=date("Y-m-d",mktime(0,0,0,date(&quo ...

  8. Java @Validated 遇到的大坑

    我在一个Controller内,在两个方法内使用@Validated,这是两个POST方法会进入的方法,这两个方法的实体类的命名(下图红框内容)不能一样,一样的话就会导致第二个在页面显示不出来错误信息 ...

  9. class类型重定义,防止头文件重复加载

    今天调用自己写的一个类,出现了class类型重定义问题,上网查了相关资料,发现是头文件重复include引起的问题. 防止头文件重复加载: 系统那些头文件,无论怎么include都没事,因为一般都用了 ...

  10. 使用PowerShell 获取azure image publisher offer sku 信息

    使用azure powershell 获取指定区域的可用镜像 publisher offer sku信息 param ( [parameter(Mandatory = $false)] $Locati ...