shell脚本获取IP,MAC,GATEWAY等信息
#!/bin/bash # ------------------------------------------------------------ # Filename: setnetwork.sh # Revision: 0.0.1 # Date: 2014-05-01 22:32:50 # Author: wanghui # Email: hwang_snow@163.com # Description: set ip,hostname,route # Usage: setnetwork.sh (function) # ----------------------------------------------------------- #set -x #获取ip地址 get_ip(){ ifconfig $1 | awk -F'[ :]+' '/inet\ addr/{print $4}' } #获取子网掩码 get_mask(){ ifconfig $1 | awk -F: '/Mask/{print $NF}' } #获取mac地址 get_mac(){ ifconfig $1 | awk '/HWaddr/{print $NF}' } #获取广播地址 get_bcast(){ ifconfig $1 | awk -F'[ :]+' '/Bcast/{print $6}' } #获取网管地址 get_route(){ route -n | awk '/UG/{print $2}' } #设置主机名并写入到配置文件中,设置kernel中的主机名立即生效 set_host(){ CONF_NET="/etc/sysconfig/network" [[ -n $(grep ^HOSTNAME $CONF_NET) ]] && sed -i "s/\(HOSTNAME=\)\S*/\1$1/" $CONF_NET || echo "HOSTNAME=$1" >> $CONF_NET echo $1 > /proc/sys/kernel/hostname } #网管写入到配置文件中 set_gateway(){ [[ $(grep ^GATEWAY $CONF_NET) ]] && sed -i "s/\(GATEWAY=\)\S*/\1$get_route/" $CONF_NET || echo "GATEWAY=$get_route" >> $CONF_NET } #配置网卡的ip信息并写入到配置文件 set_ip(){ IP_CONF="/etc/sysconfig/network-scripts/ifcfg-" CONF_FILE=${IP_CONF}$1 [ -e $CONF_FILE ] || touch $CONF_FILE [[ -n $(grep ^DEVICE $CONF_FILE) ]] && sed -i "s/\(DEVICE=\)\S*/\1$1/" $CONF_FILE || echo "DEVICE=$1" >> $CONF_FILE [[ -n $(grep ^IPADDR $CONF_FILE) ]] && sed -i "s/\(IPADDR=\)\S*/\1$(get_ip $1)/" $CONF_FILE || echo "IPADDR=$(get_ip $1)" >> $CONF_FILE [[ -n $(grep ^NETMASK $CONF_FILE) ]] && sed -i "s/\(NETMASK=\)\S*/\1$(get_mask $1)/" $CONF_FILE || echo "NETMASK=$(get_mask $1)" >> $CONF_FILE [[ -n $(grep ^HWADDR $CONF_FILE) ]] && sed -i "s/\(HWADDR=\)\S*/\1$(get_mac $1)/" $CONF_FILE || echo "HWADDR=$(get_mac $1)" >> $CONF_FILE [[ -n $(grep ^ONBOOT $CONF_FILE) ]] && sed -i 's/\(ONBOOT=\)\S*/\1yes/' $CONF_FILE || echo "ONBOOT=yes" >> $CONF_FILE [[ -n $(grep ^TYPE $CONF_FILE) ]] && sed -i 's/\(TYPE=\)\S*/\1Ethernet/' $CONF_FILE || echo "TYPE=Ethernet" >> $CONF_FILE [[ -n $(grep ^BOOTPROTO $CONF_FILE) ]] && sed -i 's/\(BOOTPROTO=\)\S*/\1static/' $CONF_FILE || echo "BOOTPROTO=static" >> $CONF_FILE } set_host HOSTNAME set_gateway eth0 set_ip eth0
转载于:https://blog.51cto.com/kitsnail/1418851