通过/etc/hosts实现域名自动切换

门店通过域名访问系统,即服务器,也可以支持在门店没有网络或者服务器挂掉的时候能够针对堂食和自取的订单下单,门店的收银电脑安装了系统的离线服务,需要能够自行切换。

收银电脑配置,需要将收银电脑的局域网IP固定设置为192.168.5.200

#!/bin/bash

if [ ! -f /home/lks/oos_restart_countdown ];then
	touch /home/lks/oos_restart_countdown
	echo "0">/home/lks/oos_restart_countdown
fi


domain="sos.xxxxxxx.com"
url='http://127.0.0.1:8080/keepAlive'
result=`curl $url`
echo $result
count=`cat /etc/hosts|grep "$domain"|wc -l`
echo "the file /etc/hosts contain string \"$domain\" num: $count \n"
# 记录oos重启次数
if [ ! -f /home/lks/oos_restart_time ];then
	touch /home/lks/oos_restart_time
	echo "0">/home/lks/oos_restart_time
fi
if [ "$result"x = "alive"x ]
then
        if [ $count -eq 0 ]
        then
                echo "add string '127.0.0.1   sos.xxxxxxx.com' to /etc/hosts"
#               echo "127.0.0.1       $domian" >> /etc/hosts
                sed -i "$ a127.0.0.1       $domain" /etc/hosts
        fi
        echo "0">/home/lks/oos_restart_time
        echo "0">/home/lks/oos_restart_countdown
else
        if [ $count -gt 0 ]
        then
                echo "del '127.0.0.1   sos.xxxxxxx.com'  /etc/hosts"
                sed -i "/$domain/d" /etc/hosts
        fi
        # 服务假死,重启
        countdown=$(cat /home/lks/oos_restart_countdown)
		if [ $countdown -ne 0 ];then
			echo `expr $countdown - 1`>/home/lks/oos_restart_countdown
			return
		fi
        if [ -f /usr/lib/oos/oos.jar ];then
        	num=$(cat /home/lks/oos_restart_time)
        	if [ $num -lt 3 ];then
        		systemctl restart oos
        		echo `expr $num + 1`>/home/lks/oos_restart_time
        		# 三分钟后在重启
        		echo "3">/home/lks/oos_restart_countdown
        	fi
        fi
fi

厨房、水吧

#!/bin/sh

ip=192.168.5.200
count=`cat /etc/hosts|grep "$ip"|wc -l`   #判断是否加了192.168.5.200 sos.xxxxxxx.com
echo "the file /etc/hosts contain string \"$ip\" num: $count \n"

num=1    #定义初始值
while [ $num -le 3 ]  
do
   if ping -c 1 $ip >/dev/null
   then
      echo "$ip Ping is success"  #if 判断如果ping通 则返回success 
      if [ $count -eq 0 ]
      then
        #echo "$ip       sos.lacesar.com" >> /etc/hosts
                sed -i "$ a$ip       sos.xxxxxxx.com" /etc/hosts
      fi
      break
   else
      #$FALL[$num]=$ip                             # 反之 则失败次数+1
      echo "this is $num time failure!"
      num=`expr $num + 1`
   fi
done
if [ $num -ge 3 ]          # if判断如果失败次数等于3 则返回Ping is failure
then
   echo "$ip Ping is failure!"
   sed -i "/$ip/d" /etc/hosts
fi

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
文件有什么区别? 回答: /etc/hosts文件和/etc/resolv.conf文件在功能和用途上有一些区别。/etc/hosts文件用于本地主机名解析,它是一个静态的文本文件,用于将主机名映射到IP地址。当主机需要解析一个主机名时,它首先会查找/etc/hosts文件来获取对应的IP地址。\[1\]而/etc/resolv.conf文件则是用于配置本地DNS服务器的,当主机需要解析一个域名时,它会向/etc/resolv.conf中配置的DNS服务器发起DNS解析的请求。\[2\]在/etc/resolv.conf文件中,可以配置多个DNS服务器的IP地址,以及搜索域名和其他选项。\[3\]所以,可以说/etc/hosts文件是用于本地主机名解析,而/etc/resolv.conf文件是用于配置本地DNS服务器的。 #### 引用[.reference_title] - *1* *3* [/etc/hosts文件与/etc/resolv.conf文件对比](https://blog.csdn.net/westos_yanzheng/article/details/126642017)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于/etc/hosts和/etc/resolv.conf学习](https://blog.csdn.net/wangjianno2/article/details/50514262)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值