前言:
在自动化运维工作中,常常需要编写自动化安装脚本,而脚本的通用性是一个重要的指标,通用性指的是脚本在同类型的平台下都可以正常的运行,而不会对原有的操作系统造成任何伤害。
那么,由于硬件的不同,在Linux平台下很多网卡的名称是不一样的,比如,有的网卡名称在Linux平台下是ens33,有的会是eth0,每个网卡如果需要提供对外服务,那么,需要给网卡绑定一个IP,有的服务器会有多个网卡,但可能只会使用一个网卡,或者双网卡,对外提供服务。比如,在局域网内,绑定的IP通常是C级ip 192.168.网段,而在比较大的局域网,可能会绑定的10.1. 这些网段,从而通过这些IP组成一个完整的网络。
本脚本的编写就是出于这个目的,使得在centos7各个版本下都可以自动查询正在使用的IP,并输出这个IP。
脚本内容:
#!/bin/bash
#!author zsk
NIC=`arp -n|tail -1|awk '{print $5}'`
LOCALIP=`ip a |grep $NIC|grep inet|awk '{print $2}' |awk -F '/' '{print $1}'`
echo "你正在使用的IP地址是:$LOCALIP"
该脚本的准确率基本达到百分之九十,并在多个centos版本下测试通过。
主要是使用arp命令获取到在使用的网卡名称,然后通过ip命令结合awk命令过滤出该网卡所绑定的IP地址。