NETWORKアドレスとBROADCASTアドレスを取得するスクリプト
★「IPアドレス」と「サブネットマスク」の情報から「NETWORKアドレス」と「BROADCASTアドレス」を取得するスクリプト
#!/bin/sh ###################################################### # SET VARIABLE ###################################################### SHELL_NAME=`basename $0` HOSTLIST=$1 NET_LST=$2 LOG=./log/GET_NWADDR.$$ ###################################################### # SET ARGUMENT ###################################################### if [ $# -ne 2 ]; then echo "Usage : sh ${SHELL_NAME} <hostlist> <net.lst>" exit 1 fi if [ ! -f ${HOSTLIST} ]; then echo "Error : File not found [${HOSTLIST}]" exit 1 fi if [ ! -f ${NET_LST} ]; then echo "Error : File not found [${NET_LST}]" exit 1 fi ###################################################### # MAIN ###################################################### for HOST in `cat ${HOSTLIST}` do echo --------------------------- ${HOST} --------------------------- | tee -a ${LOG} ################################ # CHECK HOSTNAME ################################ grep -q ${HOST} ${NET_LST} if [ $? -ne 0 ]; then echo "Host is not found ${HOST}" | tee -a ${LOG} echo | tee -a ${LOG} continue fi ################################ # SET IPADDR & NETMASK ################################ IPADDR=`grep ${HOST} ${NET_LST} | awk -F, '{print $2}'` NETMASK=`grep ${HOST} ${NET_LST} | awk -F, '{print $3}'` ################################ # GET NETWORK & BROADCAST ################################ NETWORK=`ipcalc -n ${IPADDR} ${NETMASK} | awk -F= '{print $2}'` BROADCAST=`ipcalc -b ${IPADDR} ${NETMASK} | awk -F= '{print $2}'` printf "%s\n%s\n%s\n%s\n" IPADDR=${IPADDR} NETMASK=${NETMASK} NETWORK=${NETWORK} BROADCAST=${BROADCAST} | tee -a ${LOG} echo | tee -a ${LOG} done
1.ホストリストを作成
[root@ha-01 SHELL]# cat host.lst hadoop-slave1 hadoop-slave2 hadoop-slave3 [root@ha-01 SHELL]#
2.ホスト名、IPアドレス、サブネットマスクをコンマで区切ったリストを作成
[root@ha-01 SHELL]# cat net.lst hadoop-slave1,172.16.11.151,255.255.252.0 hadoop-slave2,192.168.11.152,255.255.255.0 hadoop-slave3,10.16.11.123,255.255.255.224 [root@ha-01 SHELL]#
3.実行結果
[root@ha-01 SHELL]# sh GET_NWADDR.sh host.lst net.lst --------------------------- hadoop-slave1 --------------------------- IPADDR=172.16.11.151 NETMASK=255.255.252.0 NETWORK=172.16.8.0 BROADCAST=172.16.11.255 --------------------------- hadoop-slave2 --------------------------- IPADDR=192.168.11.152 NETMASK=255.255.255.0 NETWORK=192.168.11.0 BROADCAST=192.168.11.255 --------------------------- hadoop-slave3 --------------------------- IPADDR=10.16.11.123 NETMASK=255.255.255.224 NETWORK=10.16.11.96 BROADCAST=10.16.11.127 [root@ha-01 SHELL]#