linux 网卡 mac 配置文件,Linux脚本程序自动修改网卡配置文件中的MAC地址
在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了。virtual HDD加载到虚拟机后,新的虚拟机的MAC地址就会和virtual系统中ifcfg-eth[0-9]中的MAC地址不一样,进入系统后,ifconfig -a看到的网卡编号是接着原来系统中网卡序号编号的。假如原来系统中有四块网卡,那么对应的编号是:eth0,eth1,eth2,eth3;那么你用virtual HDD来创建一个新虚拟机,新的虚拟机同样配置了四块网卡,那么在进入系统后,用ifconfig -a 应该看到以下这样的网卡编号:eth4,eth5,eth6,eth7。
我经常会遇到这样的问题,每次修复这类问题,都要花上很长时间,实在纠结。我不得不考虑自动化的问题。于是下面的这个脚本程序就诞生了。
这个脚本程序主要修改以下两个文件:
ifcfg-eth[0-9]:[0-9]是泛指,这是正则表达式的表示方法,别说看不懂。这些网卡配置文件中的MAC地址全部要修改为当前机器上网卡的MAC。
70-persistent-net.rules:决定网卡的编号。这个文件中的内容,是系统启动时检测到的网卡,是系统自动生成;这个文件可以直接清空,我这里为了练手,所以我也对其做了细化处理。
执行完这个脚本后,重启系统,就一切OK了。就看到了熟悉的eth0,eth1……之类的了。
此脚本程序适应于RHEL系列,CentOS。
#!/bin/bash
#update:2012-12-16
#author:Sean_Gong
#version
#根据系统所识别到的网卡个数,决定修改ifcfg-eth$x文件,在修改这个网卡配置文件之前首先确定这个文件是否存在。
#如果存在,则把系统识别到的所有网卡的MAC地址写入该文件作为注释,便于记录和检查。
#在处理70-persistent-net.rules时,可以简单的把该文件清空。
#系统重启后,会自己把识别到的网卡添加到这个文件中,不需要人工干预。
#这里我之所以处理这个文件,是为了练习sed对文本的处理,和程序逻辑的锻炼,对程序整体的掌控能力。
cdate=$(date '+%Y%m%d')
num=$(ifconfig -a | grep eth | wc -l)
for ((n=0;n
do
j=$((n+1))
[ -e 70-persistent-net.rules_${cdate} ] || cp -fa /etc/udev/rules.d/70-persistent-net.rules 70-persistent-net.rules_${cdate}
if [ -e /etc/sysconfig/network-scripts/ifcfg-eth${n} ] ; then
[ -e ifcfg-eth${n}_${cdate} ] || cp -fa /etc/sysconfig/network-scripts/ifcfg-eth${n} ./ifcfg-eth${n}_${cdate}
cat ifcfg-eth${n}_${cdate} | sed '/^#eth.*$/d' > ifcfg-eth${n}_temp
ifconfig -a | grep "HWaddr" | awk '{print "#"$1" : "$5}' >> ifcfg-eth${n}_temp
newmac=$(ifconfig -a | grep "eth" | sort | awk '{print $5}' | nl -n ln | grep "^${j}" | awk '{print $2}')
sed "s/HWADDR.*$/HWADDR=$newmac/g" ifcfg-eth${n}_temp > ifcfg-eth${n}_vi
cp -fa ifcfg-eth${n}_vi /etc/sysconfig/network-scripts/ifcfg-eth${n} && rm -f ifcfg-eth${n}_temp
grep -i ${newmac} 70-persistent-net.rules_${cdate} | sed "s/NAME=.*$/NAME=\"eth${n}\"/g" >> 70-persistent-net.rules_temp
else
newmac=$(ifconfig -a | grep "eth" | sort | awk '{print $5}' | nl -n ln | grep "^${j}" | awk '{print $2}')
grep -i ${newmac} 70-persistent-net.rules_${cdate} | sed "s/NAME=.*$/NAME=\"eth${n}\"/g" >> 70-persistent-net.rules_temp
continue
fi
done
cat 70-persistent-net.rules_temp > 70-persistent-net.rules_vi && rm -f 70-persistent-net.rules_temp
cp -fa 70-persistent-net.rules_vi /etc/udev/rules.d/70-persistent-net.rules
linux 网卡 mac 配置文件,Linux脚本程序自动修改网卡配置文件中的MAC地址相关推荐
- linux脚本怎么把文件地址变成动态地址,Linux脚本程序自动修改网卡配置文件中的MAC地址...
在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...
- linux脚本自动修改网卡,Linux脚本程序自动修改网卡配置文件中的MAC地址
在玩Linux虚拟机的时候,一个安装好linux系统的virtual HDD会用于创建多个虚拟机,这样就不需要在创建每个虚拟机都安装一遍系统了.virtual HDD加载到虚拟机后,新的虚拟机的MAC ...
- linux网卡的配置文件是双引号,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
修改网卡ens33为eth0 在使用RHEL和Centos7,发现网卡名称变成了EnoX,挺不习惯.现更改回旧名称eth0看着顺眼. 1.备份/etc/sysconfig/grub文件 cp /etc ...
- Linux 开机自启动多个脚本程序
本篇文章讲解Linux 开机自启动程序 Linux开机自启动在项目中应用很常见,突然停电或者故障,程序总归要关掉的,如果手动去启动程序,比较麻烦,所以开机自启动是非常重要的一环. 在Debia ...
- linux执行db2的sql脚本,LinuxShell自动执行当前目录所有DB2 SQL语句
该shell脚本用于自动执行当前目录下所有的SQL语句,分为以下几个步骤: 步骤1.删除当前目录下已存在的log日志文件 #删除当前目录下log日志文件 for test1 in `ls` do re ...
- Linux网卡改为动态过去IP,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
修改网卡ens33为eth0 在使用RHEL和Centos7,发现网卡名称变成了EnoX,挺不习惯.现更改回旧名称eth0看着顺眼. 1.备份/etc/sysconfig/grub文件 cp /etc ...
- linux怎么修改ens33文件,Linux修改网卡ens33为eth0以及centos7下修改动态IP为静态IP地址...
修改网卡ens33为eth0 在使用RHEL和Centos7,发现网卡名称变成了EnoX,挺不习惯.现更改回旧名称eth0看着顺眼. 1.备份/etc/sysconfig/grub文件 cp /etc ...
- mac svn工具_程序员或产品经理,这些Mac的效率工具一定不要错过
工欲善其事必先利其器!用好工具能很大的提高我们的工作效率,尤其是程序员和产品经理等.今天给大家介绍一些好用的工具 随时记下闪现的灵感 人的一天中大脑会产生大约6万个想法, 其中有不少优秀的 idea. ...
- 微信小程序怎么修改自定义组件中的样式
在微信小程序中我们经常要用到自定义组件,但是有时我们因为引用的地方不同可能组件的一些样式也要修改,比如颜色,高度,宽度等来适合不同的页面,有没有办法来修改自定义组件中的样式呢,很显然是有的,我们要用到 ...
- linux 执行sh_linux下执行脚本 sh -x XXX.sh 调试中存在大量/r 的问题
今天调试一个脚本,每句结尾都有大量/r 换行字符.检验了很多次都没调试成功. 后来才发现这个脚本是在windows环境下编写的,直接ftp拖到了linux服务器上. vi下用 :set ff 查看文件 ...
最新文章
- engine中调整Element的上下显示顺序(遮盖)
- 编程作业—C++初探 简单的学生信息处理程序实现
- Django 权限管理-后台根据用户权限动态生成菜单
- C++ 对二维数组排序 升序 降序
- Innodb隔离级别的实现原理
- 算法训练营 重编码_编码训练营适合您吗?
- python使用ssh 中文_Python3制作简易SSH登录工具
- 【LogStash】LogStash 配置后无法启动的问题
- 知方可补不足~CSS中margin,padding,border-style有几种书写规范
- Codevs 1205 单词反转(Vector以及如何输出string)
- Java 素数筛选法
- B站网站后台工程源码泄露 用户信息还安全吗?
- 达内培训视频下载python
- Java项目:大学生实习管理系统(java+SpringBoot+Thymeleaf+html+JQuery+bootstrap)
- C#——NPOI对Excel的操作、导入导出时异常处理(二)
- 985高校90后博导,7篇一作论文他引过百!想培养更多的“雷军”
- Method类的使用
- C 语言 某人在国外留学,不熟悉当地的天气预报中的华氏温度值,请编程按每隔10°输出0°到300°之间的华氏温度的对照表,方便他对照查找
- java学习之服务器第26天( --form表单-- 四大域对象--cookie)
- 集体所有制的企业是属于国企吗