|
shell脚本获取IP,MAC,GATEWAY等信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| #!/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
|
|
|