healthcheck.sh 893 B

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