693 views
Linux-shell脚本

自动修改IP且固定格式

改IP脚本,实现只能输入四位IP,而且IP地址要符合正常值,不能是特殊符号或者大于255或者字母,如果输入不对,循环输入,直到输入正确为止

[code]

#!/bin/bash

#2017年8月22日10:34:02

#by ying

#auto chang IP

ETH_DIR=”/etc/sysconfig/network-scripts/”

ETH_NAME=”ifcfg-eth0″

BAK_DIR=”/data/backup/`date +%F`”

NETMASK=255.255.255.0

if [ ! -d $BAK_DIR ];then

mkdir -p $BAK_DIR

fi

read -p “请输入你的IP,如192.168.1.1,IP: ” IPADDR

function STAT()

{

echo $IPADDR|grep -v “[Aa-Zz]”|grep –color -E “([0-9]{1,3}\.){3}[0-9]{1,3}”

NUM1=`echo $IPADDR |awk -F ‘.’ ‘{print $1}’`

NUM2=`echo $IPADDR |awk -F ‘.’ ‘{print $2}’`

NUM3=`echo $IPADDR |awk -F ‘.’ ‘{print $3}’`

NUM4=`echo $IPADDR |awk -F ‘.’ ‘{print $4}’`

NUM5=`echo $IPADDR |awk -F ‘.’ ‘{print $5}’`

if [ $NUM1 -le “255” -a $NUM2 -le “255” -a $NUM3 -le “255” -a $NUM4 -le “255” -a “$NUM5” = “” ];then

STATUS=OK

else

STATUS=NO

fi

}

STAT

while [ “$STATUS” != “OK” ]

do

read -p “输入有误,请输入正确的IP: ” IPADDR

STAT

done

cp $ETH_DIR/$ETH_NAME $BAK_DIR

read -p “请输入网关:” GATEWAY

cat>$ETH_DIR/$ETH_NAME<<EOF

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=$IPADDR

NETMASK=$NETMASK

GATEWAY=$GATEWAY

EOF

service network restart

cat>/etc/resolv.conf<<EOF

nameserver 8.8.8.8

nameserver 202.106.0.20

EOF

[/code]

Leave a Reply

影子专属博客 赣ICP备17013143号