[提供可行性腳本] RHEL 7/CentOS 7/Fedora28 重命名網卡名稱

来源:https://www.cnblogs.com/plus-ir/archive/2018/08/14/9476372.html
-Advertisement-
Play Games

實驗說明: 在許多自動化任務中,腳本往往是通過讀取配置文件來獲取信息的,紅帽系的系統自升級之後(CentOS7/RHEL7),網卡命名採用“一致性網路設備介面”的命名方法,導致不同設備的不同網卡名稱各不相同。為了統一網卡名稱,方便配置文件的書寫,不得不修改網卡名稱。 實驗環境: 宿主機系統 :Win ...


實驗說明:

在許多自動化任務中,腳本往往是通過讀取配置文件來獲取信息的,紅帽系的系統自升級之後(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. 查看當前網卡設備數目及名稱

    1 [root@localhost ~]$ ls -l /etc/sysconfig/network-scripts | awk  '/ifcfg-e/ {print $9}'
    2 ifcfg-enp0s10
    3 ifcfg-enp0s3
    4 ifcfg-enp0s8
    5 ifcfg-enp0s9
  2. 備份系統預設網卡配置文件

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

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

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

    1 [root@localhost network-scripts]$ sed -i '/GRUB_CMDLINE_LINUX=/d' /etc/default/grub
    2 [root@localhost network-scripts]$ echo 'GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root \
    3 > rd.lvm.lv=centos/swap crashkernel=auto \
    4 > net.ifnames=0 biosdevname=0 rhgb quiet"' \
    5 > >> /etc/default/grub
  6. 重新生成GRUB配置並更新內核參數

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

    1 [root@localhost ~]$ reboot now
  8. 查詢網卡信息

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

PS:CentOS7 修改預設網卡名稱腳本 (change_default_nic_name.sh),直接拷貝就可使用。

 1 #!/usr/bin/bash
 2 #this script will change default ifcfg-enoxxxx/ifcfg-enpxxxx to ifcfg-ethx 
 3 
 4 ls -l /etc/sysconfig/network-scripts|awk  '/ifcfg-eno[0-9]*/ {print $9}' > default_nic_name.txt
 5 i=0
 6 cat default_nic_name.txt| while read line
 7 do
 8     cd /etc/sysconfig/network-scripts
 9     name=$(echo $line|cut -b 7-)
10     cp $line ${line}.bak
11     sed -i "s/$name/eth${i}/g" $line
12     sed -i 's/ONBOOT=no/ONBOOT=yes/g' $line
13     mv $line ifcfg-eth${i}
14     i=$(expr $i + 1)
15
16 done
17 
18 sed -i '/GRUB_CMDLINE_LINUX=/d' /etc/default/grub
19 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 
20 grub2-mkconfig -o /boot/grub2/grub.cfg
21 reboot

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本人也是英文盲,翻譯不對的地方請諒解。由於翻譯內容較多,會慢慢更新 orleans簡稱ol,一些專用詞不做翻譯。先決條件,讀這表文章之前需要瞭解:actor,es,cqrs 參考鏈接: https://www.cnblogs.com/netfocus/p/4150084.html http://ww ...
  • 分享翻譯一篇 "Abp" 框架作者(Halil İbrahim Kalkan)關於ASP.NET Core依賴註入的博文. 在本文中,我將分享我在ASP.NET Core應用程式中使用依賴註入的經驗和建議. 這些原則背後的目的是: 1. 有效地設計服務及其依賴關係 2. 防止多線程問題 3. 防止內 ...
  • 從小到大的選擇排序 是從一個數組中依次選出 最小數值 輸出,第二小的數值輸出,第三小的數值輸出... ...直到最後一個數組中最後一個數遍歷完成,則 整個排序輸出完成。 ...
  • 公司項目修改(員工工作失誤記錄操作系統) 前言 之前培訓過Java,感受就是會的不用學,不會的學了沒用,教的都是最基礎的,自己通過普通渠道都能學到。培訓的機構也坑,提供宿舍的房租永遠是最積極收的,提供面試的機會永遠是最拖拉的。不負眾望,它也終於要涼涼了。有幸面試了一家非IT公司的IT崗位,但用的是C ...
  • 可以對整個項目進行全局監控。 新建一個MVC4項目,可以在global.asax文件中看到如下代碼: FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 表示註冊全局過濾器. GlobalFilters是全局過濾器的集合,可以通過ad ...
  • [TOC] 背景敘述 在傳統的基於 框架下進行的 MEF 開發,大多是使用 MEF 1 ,對應的命名空間是 System.ComponentModel.Composition 。在 中,微軟為了偉大的跨平臺策略,引入了 MEF 2 ,其對應的命名空間是 System.Composition ,這個需 ...
  • 一、介紹 由於CPU從記憶體中讀取數據的速度比從磁碟讀取快幾個數量級,並且存在記憶體中,減小了資料庫訪問的壓力,所以緩存幾乎每個項目都會用到。一般常用的有MemoryCache、Redis。MemoryCache將存入的對象都作為Object對象存儲,Redis分為四種類型存儲,在微軟提供的緩存組件中也 ...
  • 系統:centos7 伺服器:阿裡雲 一、前期準備 1.安裝git 2.安裝perl 3.安裝openssh 4.安裝cpan(如果你的linux裡面沒有,就必須安裝) 5.準備兩個用戶(這兩個用戶可以是自定義的,並且他們相互之間沒有讀取對方目錄的許可權,不然會繞過gitolite,在執行update ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...