#!/bin/bash
#2024年08月31号
#auto change network ip
#fish
############################
ETH_BACK="/tmp/backup/`date +%F`"
ETH_DIR="/etc/sysconfig/network-scripts"
ETH_CFG="ifcfg-ens32"
IP="$1"
#判断在执行脚本的时候是否有参数
if [[ $# -eq 0 ]];then
echo "\033[32m请输入ip参数\033[0m"
exit 1
fi
#先备份
#如果目录不存在
if [[ ! -d $ETH_BACK ]];then
mkdir -p $ETH_BACK
cp $ETH_DIR/$ETH_CFG $ETH_BACK
fi
#查看是否有dhcp,是否是动态ip
#grep "dhcp" $ETH_DIR/$ETH_CFG
#判断是否是dhcp
if [[ $? -eq 0 ]];then
#修改成静态ip
cat>$ETH_DIR/$ETH_CFG <<EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=e13c9f1c-27aa-4844-b1a2-49711869c180
DEVICE=ens32
ONBOOT=yes
IPADDR=$IP
NETMASK=255.255.255.0
GATEWAY=192.168.31.1
DNS1=8.8.8.8
EOF
fi
cat $ETH_DIR/$ETH_CFG
#ping一下IP地址;-c1 ping一次
ping -c1 ${IP} >>/dev/null
if [[ $? -ne 0 ]];then
#没有ping通就重启服务
service network restart
else
echo -e "\033[32m-------------------\033[0m"
echo -e "\033[32m这个地址已经被使用\033[0m"
#这里需要回滚一下,不然上一句ping命令会一直异常
# \cp $ETH_BACk/$ETH_CFG $ETH_DIR/$ETH_CFG
exit 1
fi
shell脚本_自动修改静态IP
于 2024-08-31 23:27:32 首次发布