由于需要,将IP作为双机热备的资源,特别写了IP启动停止的脚本。
#!/bin/bash
IP=192.168.1.100-120/24,192.168.2.1-10/24,192.168.3.10
network="eth0:2"
network_let (){
NETWORK_NUM=`echo "$1"|awk -F ':' '{print $2}'`
NETWORK_PREDIX=`echo "$1"|awk -F ':' '{print $1}'`
let NETWORK_NUM=$NETWORK_NUM+1
network=""$NETWORK_PREDIX":"$NETWORK_NUM""
}
case $1 in
start)
for ip in `echo $IP|sed "s:,: :g"`
do
if [ -z `echo $ip|grep -` ]; then
ifconfig $network $ip up && echo "$network $ip up"
network_let $network
else
IP_PREFIX=`echo "$ip"|awk -F '-' '{print $1}'|awk -F '.' '{print $1"."$2"."$3}'`
IP_SUFFIX_START=`echo "$ip"|awk -F '-' '{print $1}'|awk -F '.' '{print $NF}'`
IP_SUFFIX_END=`echo "$ip"|awk -F '-' '{print $2}'|awk -F '/' '{print $1}'`
IP_NETMASK=`echo "$ip"|awk -F '-' '{print $2}'|awk -F '/' '{print $2}'`
for((i=$IP_SUFFIX_START;i<=$IP_SUFFIX_END;i++))
do
ifconfig $network $IP_PREFIX.$i/$IP_NETMASK up && echo "$network $IP_PREFIX.$i/$IP_NETMASK up"
network_let $network
done
fi
done
;;
stop)
for ip in `echo $IP|sed "s:,: :g"`
do
if [ -z `echo $ip|grep -` ]; then
ifconfig $network $ip down && echo "$network $ip down"
network_let $network
else
IP_PREFIX=`echo "$ip"|awk -F '-' '{print $1}'|awk -F '.' '{print $1"."$2"."$3}'`
IP_SUFFIX_START=`echo "$ip"|awk -F '-' '{print $1}'|awk -F '.' '{print $NF}'`
IP_SUFFIX_END=`echo "$ip"|awk -F '-' '{print $2}'|awk -F '/' '{print $1}'`
IP_NETMASK=`echo "$ip"|awk -F '-' '{print $2}'|awk -F '/' '{print $2}'`
for((i=$IP_SUFFIX_START;i<=$IP_SUFFIX_END;i++))
do
ifconfig $network $IP_PREFIX.$i/$IP_NETMASK down && echo "$network $IP_PREFIX.$i/$IP_NETMASK down"
network_let $network
done
fi
done
;;
*)
echo "Usage:$0 (start|stop)"
;;
esac
注:脚本只支持掩码大于等于24的IP