松原网站推广,新网$网站优化,中英双语 网站 模板,百度总部公司地址在哪里在玩Linux虚拟机的时候#xff0c;一个安装好linux系统的virtual HDD会用于创建多个虚拟机#xff0c;这样就不需要在创建每个虚拟机都安装一遍系统了。virtual HDD加载到虚拟机后#xff0c;新的虚拟机的MAC地址就会和virtual系统中ifcfg-eth[0#xff0d;9]中的MAC地址不…在玩Linux虚拟机的时候一个安装好linux系统的virtual HDD会用于创建多个虚拟机这样就不需要在创建每个虚拟机都安装一遍系统了。virtual HDD加载到虚拟机后新的虚拟机的MAC地址就会和virtual系统中ifcfg-eth[09]中的MAC地址不一样进入系统后ifconfig -a看到的网卡编号是接着原来系统中网卡序号编号的。假如原来系统中有四块网卡那么对应的编号是eth0eth1eth2eth3那么你用virtual HDD来创建一个新虚拟机新的虚拟机同样配置了四块网卡那么在进入系统后用ifconfig -a 应该看到以下这样的网卡编号eth4eth5eth6eth7。我经常会遇到这样的问题每次修复这类问题都要花上很长时间实在纠结。我不得不考虑自动化的问题。于是下面的这个脚本程序就诞生了。这个脚本程序主要修改以下两个文件ifcfg-eth[0-9]:[0-9]是泛指这是正则表达式的表示方法别说看不懂。这些网卡配置文件中的MAC地址全部要修改为当前机器上网卡的MAC。70-persistent-net.rules决定网卡的编号。这个文件中的内容是系统启动时检测到的网卡是系统自动生成这个文件可以直接清空我这里为了练手所以我也对其做了细化处理。执行完这个脚本后重启系统就一切OK了。就看到了熟悉的eth0eth1……之类的了。此脚本程序适应于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 ((n0;n 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