Linux 查看IP是否配置指令

背景

Linux调试设备过程中需要对IP配置检查,如果配置好了IP则使用默认IP,如果IP没有配置,则配置对应的IP地址DCHP自动分配IP,如果动态分配不到IP,则配置为静态IP

这样的配置IP的策略,保证了IP地址不会掉,如果动态分配不到IP,网络没有IP,会导致设备很麻烦,还要通过其他网口,或者串口登录设备进行修改。这样大大增加了系统不稳定性。

实现

如下图所示:

代码解读:

检查eth0如果IP没有没配置,则启动DHCP自动获取IP

检查eth0,如果IP没有自动分配到IP,则默认eth0配置静态IP 192.168.111.2

这样就保证了eth0肯定有IP地址

不会出现IP丢失,导致系统无法登录

代码截图如下

代码块如下图所示:

#!/bin/sh

#network config
net='eth0'

ip=`ifconfig $net|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo $ip
if [$ip -eq ""]
then
echo "ip没有配置1"
udhcpc -i $net -b &
else
echo "ip已经配置1"
fi


sleep 5

ip=`ifconfig $net|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo $ip
if [$ip -eq ""]
then
echo "ip没有配置2"
ifconfig $net down
sleep 1
ifconfig $net 192.168.111.2 netmask 255.255.255.0
route add default gw 192.168.111.1
else
echo "ip已经配置2"

fi

指令解读

因需要将linx下获取某个网中的MAC地址,可以使用如下命令获取:

ifconfig|grep ens33|awk '{print $5}'

ifconfig:

输出linux下所有网口的信息(包括IP地址,掩码,MAC地址等)

grep ens33:

linux下的一种过滤条件,这个是将ens33所在行一行信息全部显示出来

awk '{print $5}' : 是行处理器命令,后面的print是打印,$5是指第5个字符(空格是不计算在内的)

所以这一完整命令的解释就是:

将ens33所在行的信息的第5个字符串显示出来,也即是ens33网口的MAC地址

virtual-machine:~/$ ifconfig|grep ens33|awk '{print $5}'
00:0c:29:37:ff:de

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大牛攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值