healthceck.new.sh 1.2 KB

1234567891011121314151617181920212223242526
  1. #!/bin/bash
  2. # Определяем изменился ли адрес админки
  3. admin_ip="10.0.29.40"
  4. ping -c3 ${admin_ip}
  5. if [[ $? -ne 0 ]]; then
  6. new_ip=$(nslookup admin|grep Address|tail -n1|cut -d " " -f2)
  7. ping -c3 ${new_ip} || echo "adminhost not available!!! Exit"
  8. # Вычисляем адрес node и последний октет
  9. admin_net=$(nslookup admin|grep Address|tail -n1|cut -d " " -f2|cut -d "." -f1-3)
  10. for i in $(hostname -I)
  11. do
  12. if [[ $(echo ${i}|cut -d "." -f1-3) == ${admin_net} ]]; then node_ip=${i};fi
  13. done
  14. last_node_oct=$(echo ${node_ip}|cut -d "." -f4)
  15. #Вычисляем адреса task.node и сортируем последние октеты, сравниваем с последним окстетом текущей node и отправляем node на перезапуск
  16. last_task_node_oct=($(echo $(nslookup tasks.node | grep Address | tail -n2 | cut -d " " -f2| cut -d "." -f4)))
  17. IFS=$'\n' sorted=($(sort <<<"${last_task_node_oct[*]}"))
  18. unset IFS
  19. for i in ${!sorted[*]}
  20. do
  21. if [[ ${last_node_oct} -eq ${sorted[i]} ]];then : $((t=${i}*3));sleep ${t}m;kill 1;break;fi
  22. done
  23. fi
  24. curl -f -H 'Host:demo.infoclinica.ru' 127.0.0.1:9000/login || exit 1