Linux下自动更新hosts文件地址脚本

  • A+
所属分类:日志

最近,某一套系统联系外部微信api的接口很不稳定,频繁的报警:"java.net.UnknownHostException: file.api.weixin.qq.com"。基于这个原因,开始琢磨解决方案

一种情况是偶尔发生的,可能由于网络DNS压力过大,导致的。这个不是我能管理的范围不解释。

另外一种情况可以直接将api地址写入hosts文件当中,不过这样就会存在一个hosts文件失效的问题。如何解决这个问题?于是乎就有了如下脚本

Linux下自动更新hosts文件地址脚本

脚本


#!/bin/bash

url=shengbao.org

ping -c 1 www.baidu.com >/dev/null && echo ok > /dev/null ||exit 0

iplist=`nslookup $url|grep "Address"|grep -v "#53"|awk -F 'Address:' '{print $2}'`

hostlista=`grep "$url" /etc/hosts|awk -F ' ' '{print $1}'`

for iplista in $iplist;do

if [[ -z $hostlista ]];then

echo "$iplista $url" >> /etc/hosts

else

echo ${hostlista[@]}|grep -w "$iplista" > /dev/null && echo "yes" > /dev/null || echo "$iplista $url" >> /etc/hosts

fi

done

for hostlistaa in $hostlista;do

if [[ ! `echo ${iplist[@]}|grep -w "$hostlistaa"` ]];then

dellist=`grep "$hostlistaa" /etc/hosts`

sed -i "s/$dellist/ /p" /etc/hosts

fi

done

计划任务


crontab 在这里不写了,各位自编,水平有限,仅供参考。

weinxin
付生保个人博客
一个运维工程师的自媒体个人博客网站。也是关注IT技术学习和经验分享的原创独立自媒体个人博客。
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: