需求
- 由于我需要将一个域名(a.b.c)绑定到本机ip,而本机ip经常会变动
- 导致域名出问题,因此我需要一个脚本更新host
- 最好可以定时去更新
脚本设计
- 查询本机ip
- 对比host中的配置是否一致
- 更新host配置
shell脚本代码
echo "查询本机ip"
ip=$(ifconfig en0 | grep "inet " | sed 's/^.*inet //g' | sed 's/ netmask.*//g')
echo "最新ip是:""${ip}"
localip=$(cat /etc/hosts | grep "a.b.c" | sed 's/ a.b.c//g')
echo "以前ip是:""${localip}"
if [ "${ip}" == "${localip}" ]; then
echo "不需要修改host"
exit 0
else
echo "需要修改host"
old=$(cat /etc/hosts | grep "a.b.c")
new=${ip}" a.b.c"
echo "${old}"
echo "${new}"
sudo sed -i "s/${old}/${new}/g" /etc/hosts
echo "修改host完成"
check=$(cat /etc/hosts | grep "a.b.c")
echo "${check}"
exit 0
fi