一直用ifconfig显示本机网卡信息,在写shell脚本也用ifconfig 会出现linux版本或者网卡接口不同抓不到本机IP的问题,发布系统对接机子发行版多了这个shell会很难写。
好在AWS还是很不错的 提供了一个ec2-metadata 命令可以查看本机信息,最后用ec2-metadata去写的shell发现还有linux没有ec2-metadata命令。
AWS提供了 http://169.254.169.254/latest/meta-data/ url可以查看本机信息 这个就很好用了 后续的shell也不会找不到命令了直接用curl去调用
获取本机内网IP 再也不怕ifconfig的显示问题了
curl http://169.254.169.254/latest/meta-data/local-ipv4
改造后的本机200响应状态码检测脚本
#/bin/bash
set -xu
#获取本机IP信息 /ping是开发规范的存活检测url
#public-ipv4=$(curl http://169.254.169.254/latest/meta-data/public-ipv4)
local-ipv4=$(curl http://169.254.169.254/latest/meta-data/local-ipv4)
for ((i=0;i<20;i++))
do
status_code=`curl -s -w "%{http_code}" -m 5 $local-ipv4/ping -o /dev/null`
if [ $status_code -eq "200" ];then
exit 0
else
sleep 3
echo "HTTP Survival detection error"
fi
done
exit 1