Shell脚本自动修改Linux网卡地址、IP地址配置、主机名修改
来源:互联网 发布:linux内核 pdf 编辑:程序博客网 时间:2024/05/02 01:23
#!/bin/bash
#Program:
# 修改网卡、修改IP地址
#History:
# ZhangXingbin First release 2015/07/14
#定义的一些常量
HOST_NAME='/etc/sysconfig/network'
HOSTNAME=`hostname`
ETH0='/etc/sysconfig/network-scripts/ifcfg-eth0'
RULES='/etc/udev/rules.d/70-persistent-net.rules'
#克隆虚拟机后,获取MAC地址
A_MAC_eth0=`cat /etc/udev/rules.d/70-persistent-net.rules | grep --color=auto 'eth0' | cut -d '"' -f 8`
A_MAC_Current=`ifconfig | grep --color=auto 'HWaddr' | cut -b 39-55`
#将MAC地址中的字母替换为小写
MAC_eth0=`tr '[A-Z]' '[a-z]' <<<"$A_MAC_eth0"`
MAC_Current=`tr '[A-Z]' '[a-z]' <<<"$A_MAC_Current"`
#打印获取到的MAC地址
echo "(1)对比MAC地址"
echo $MAC_eth0
echo $MAC_Current
#检查MAC地址是否需要修改
if [ $MAC_eth0 == $MAC_Current ]; then
echo "MAC地址不用修改!"
elif [ $MAC_eth0 != $MAC_Current ]; then
echo "请修改MAC地址为:${MAC_Current}!"
echo "需要修改的地方有${ETH0}以及${RULES}中eth0的MAC地址!"
#修改ifcfg-eth0中的MAC地址
echo "修改ifcfg-eth0中的MAC地址为${MAC_Current}..."
sed -i "2c HWADDR=${MAC_Current}" ${ETH0}
#修改后的ifcfg-eth0
cat ${ETH0} | grep --color=auto "HWADDR"
echo "ifcfg-eth0中的MAC地址修改完成!"
#修改70-persistent-net.rules文件,将eth0的MAC地址改为eth1的
#查看70-persistent-net.rules的信息
#cat ${RULES} | grep --color=auto "eth0"
echo "修改70-persistent-net.rules文件"
sed -i '8,$c SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="'${MAC_Current}'", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"' ${RULES}
#cat ${RULES} | grep --color=auto "eth0"
fi
#修改IP地址
#首先读取ifcfg-eth0文件
echo "${ETH0}的内容如下:"
cat ${ETH0}
#加入判断,先判断该文件中有没有IP地址
read -p "是否需要修改ifcfg-eth0文件(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
sed -i "5c ONBOOT=yes" ${ETH0}
sed -i "7c BOOTPROTO=static" ${ETH0}
#修改IP地址
read -p "输入IP地址:" IP
sed -i "7a IPADDR=${IP}" ${ETH0}
sed -i "8a NETMASK=255.255.255.0" ${ETH0}
read -p "输入GATEWAY地址:" GATE
sed -i "9a GATEWAY=${GATE}" ${ETH0}
#重启网卡
service network restart
#cat ${ETH0}
read -p "网络配置已完成,是否重启系统(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "将要重启系统..."
reboot
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "修改MAC地址后需要重启系统使之生效,请手动重启系统..."
fi
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "为了更好地使用网络还是修改一下吧!"
fi
#ping www.baidu.com
#修改主机名
read -p "当前主机名为${HOSTNAME},是否修改(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
read -p "请输入主机名:" hdp
sed -i "2c HOSTNAME=${hdp}" ${HOST_NAME}
read -p "主机名修改完成,重启系统使之生效,是否重启系统(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "将要重启系统..."
reboot
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "主机名修改后需要重启系统使之生效,请手动重启系统..."
fi
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "主机名没有修改!"
fi
#Program:
# 修改网卡、修改IP地址
#History:
# ZhangXingbin First release 2015/07/14
#定义的一些常量
HOST_NAME='/etc/sysconfig/network'
HOSTNAME=`hostname`
ETH0='/etc/sysconfig/network-scripts/ifcfg-eth0'
RULES='/etc/udev/rules.d/70-persistent-net.rules'
#克隆虚拟机后,获取MAC地址
A_MAC_eth0=`cat /etc/udev/rules.d/70-persistent-net.rules | grep --color=auto 'eth0' | cut -d '"' -f 8`
A_MAC_Current=`ifconfig | grep --color=auto 'HWaddr' | cut -b 39-55`
#将MAC地址中的字母替换为小写
MAC_eth0=`tr '[A-Z]' '[a-z]' <<<"$A_MAC_eth0"`
MAC_Current=`tr '[A-Z]' '[a-z]' <<<"$A_MAC_Current"`
#打印获取到的MAC地址
echo "(1)对比MAC地址"
echo $MAC_eth0
echo $MAC_Current
#检查MAC地址是否需要修改
if [ $MAC_eth0 == $MAC_Current ]; then
echo "MAC地址不用修改!"
elif [ $MAC_eth0 != $MAC_Current ]; then
echo "请修改MAC地址为:${MAC_Current}!"
echo "需要修改的地方有${ETH0}以及${RULES}中eth0的MAC地址!"
#修改ifcfg-eth0中的MAC地址
echo "修改ifcfg-eth0中的MAC地址为${MAC_Current}..."
sed -i "2c HWADDR=${MAC_Current}" ${ETH0}
#修改后的ifcfg-eth0
cat ${ETH0} | grep --color=auto "HWADDR"
echo "ifcfg-eth0中的MAC地址修改完成!"
#修改70-persistent-net.rules文件,将eth0的MAC地址改为eth1的
#查看70-persistent-net.rules的信息
#cat ${RULES} | grep --color=auto "eth0"
echo "修改70-persistent-net.rules文件"
sed -i '8,$c SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="'${MAC_Current}'", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"' ${RULES}
#cat ${RULES} | grep --color=auto "eth0"
fi
#修改IP地址
#首先读取ifcfg-eth0文件
echo "${ETH0}的内容如下:"
cat ${ETH0}
#加入判断,先判断该文件中有没有IP地址
read -p "是否需要修改ifcfg-eth0文件(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
sed -i "5c ONBOOT=yes" ${ETH0}
sed -i "7c BOOTPROTO=static" ${ETH0}
#修改IP地址
read -p "输入IP地址:" IP
sed -i "7a IPADDR=${IP}" ${ETH0}
sed -i "8a NETMASK=255.255.255.0" ${ETH0}
read -p "输入GATEWAY地址:" GATE
sed -i "9a GATEWAY=${GATE}" ${ETH0}
#重启网卡
service network restart
#cat ${ETH0}
read -p "网络配置已完成,是否重启系统(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "将要重启系统..."
reboot
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "修改MAC地址后需要重启系统使之生效,请手动重启系统..."
fi
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "为了更好地使用网络还是修改一下吧!"
fi
#ping www.baidu.com
#修改主机名
read -p "当前主机名为${HOSTNAME},是否修改(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
read -p "请输入主机名:" hdp
sed -i "2c HOSTNAME=${hdp}" ${HOST_NAME}
read -p "主机名修改完成,重启系统使之生效,是否重启系统(y/n):" yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "将要重启系统..."
reboot
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "主机名修改后需要重启系统使之生效,请手动重启系统..."
fi
elif [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "主机名没有修改!"
fi
0 0
- Shell脚本自动修改Linux网卡地址、IP地址配置、主机名修改
- Shell脚本自动修改Linux网卡地址、IP地址配置、主机名修改
- Shell脚本实现自动修改IP地址
- Linux 修改本机IP地址 修改用户名 修改主机名
- Linux脚本程序自动修改网卡配置文件中的MAC地址
- linux网卡配置修改IP地址操作及文件解析
- linux配置bond网卡绑定与修改IP地址
- Linux下修改网卡的ip地址
- Linux修改IP地址及激活网卡
- linux 修改网卡eth0的ip地址
- 自动修改IP地址及网卡地址(批处理文件实现)
- Oracle RAC 修改 IP 地址& 修改主机名
- 自动修改ip地址
- 常用的Linux 命令 -- 修改主机名和ip地址
- Linux中修改网卡名字&修改IP地址报错
- Sun Solaris 修改IP地址或者主机名
- Android修改主机名和IP地址问题
- ubuntu更改主机名,修改IP地址
- 软件开发设计文档模版
- linux 忘记mysql root密码
- 怎样理解Servlet的单实例多线程
- $emit/$broadcast/$on用法
- Android Studio中关于修改包名的相关问题
- Shell脚本自动修改Linux网卡地址、IP地址配置、主机名修改
- Storm Distributed RPC(DRPC)分布式远程过程调用
- Hive中“一行变多行”、“多行合成一行”的实现实例
- Linux下Socket相关头文件总结
- 我的一路经历
- 17.1.1.2 Setting the Replication Slave Configuration
- Android中让Dialog全屏
- iOS动画实现方式 animation key path
- android键盘弹出判断,计算键盘外的高度。