healthcheck.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. #!/bin/bash
  2. containerstart=`stat -c %Z /proc/1`
  3. curtime=`date +%s`
  4. if (( curtime-containerstart < 180 )); then
  5. echo "Container start period, returning 0"
  6. exit 0
  7. fi
  8. curl -f -H 'Host:demo.infoclinica.ru' 127.0.0.1:9000/login || exit 1
  9. # Проверяем наличие файла с переменной time_to_dead
  10. if [ -f /tmp/dead ];then
  11. # dead_to_time=$(cat /tmp/dead)
  12. if (( ${curtime} > $(cat /tmp/dead) ));then kill 1;fi
  13. else
  14. # Определяем изменился ли адрес админки
  15. ping -c3 $(cat /tmp/admin_ip)
  16. if [[ $? -ne 0 ]]; then
  17. new_admin_ip=$(dig +short ${ADMIN_HOST}.${APPNET})
  18. if [[ ${new_admin_ip} != $(cat /tmp/admin_ip) ]];then
  19. ping -c3 ${new_admin_ip} || exit 0
  20. fi
  21. sorted=($(echo $(dig tasks.${SERVICE_NAME}.${APPNET} +short)|tr " " "\n"|sort -n))
  22. for (( i=0; i < ${#sorted[*]}; i++ ))
  23. do
  24. [[ $(ip a | grep ${sorted[${i}]}) ]] && echo $((${i}*180+$(date +%s)+60)) > /tmp/dead
  25. # if [[ ${sorted[${i}]} == $(dig ${HOSTNAME}.${APPNET} +short) ]];then echo $((${i}*180+$(date +%s)+20)) > /tmp/dead;fi
  26. done
  27. fi
  28. fi
  29. exit 0