peiyuan1030 发表于 2018-8-25 08:17:06

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


页: [1]
查看完整版本: shell脚本获取IP,MAC,GATEWAY等信息