创建shell文件
vim setip.sh
脚本
#!/bin/bash
echo "正在设置固定ip地址..."
ip=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}')
#如需要指定ip,打开下面注释,并注释上面获取ip的shell
#ip=192.168.10.111
echo "1、当前ip为:$ip"
#截取网卡设备名
enp=$( ls /etc/sysconfig/network-scripts/|egrep ifcfg |grep en.*|awk -F"-" '{print $2}')
echo "2、当前网卡设备名为:$enp"
#网卡路径
enpWay=/etc/sysconfig/network-scripts/ifcfg-$enp
echo "3、当前网卡路径为:$enpWay"
#截取路由
rt=$(netstat -rn|head -3|tail -1|awk -F" " '{print $2}')
echo "4、当前路由为:$rt"
echo "5、修改配置文件"
# 备份
cp /etc/sysconfig/network-scripts/ifcfg-$enp /etc/sysconfig/network-scripts/ifcfg-$enp.bak
uuid=`cat /etc/sysconfig/network-scripts/ifcfg-$enp.bak | awk -F"=" '/UUID/{print $2}' `
cat >/etc/sysconfig/network-scripts/ifcfg-$enp <<-EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=$ip
GATEWAY=$rt
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=8.8.4.4
EFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=$enp
UUID=$uuid
DEVICE=$enp
ONBOOT=yes
EOF
echo "设置固定ip成功,固定ip为:"+$ip
echo "重启网卡..."
systemctl restart network
echo "重启网卡成功"
设置shell执行权限
chmod +x setip.sh
执行
./setip.sh