healthceck.new.sh 1.0 KB

1234567891011121314151617181920212223
  1. #!/bin/bash
  2. # Основной цикл для определения изменился ли адрес админки
  3. admin_ip="10.0.29.39"
  4. ping -c3 ${admin_ip} || new_ip=$(nslookup admin|grep Address|tail -n1|cut -d " " -f2)
  5. ping -c3 ${new_ip} || echo "admin not available!!! Exit"
  6. echo ${new_ip}
  7. # Вычисляем адрес node
  8. admin_net=$(nslookup admin|grep Address|tail -n1|cut -d " " -f2|cut -d "." -f1-3)
  9. for i in $(hostname -I)
  10. do
  11. if [[ $(echo ${i}|cut -d "." -f1-3) == ${admin_net} ]]; then node_ip=${i}; echo ${node_ip};fi
  12. done
  13. #Вычисляем адреса node и сортируем последние октеты, сравниваем с последним окстетом текущей node и отправляем node на перезапуск
  14. ip=($(echo $(nslookup tasks.node | grep Address | tail -n2 | cut -d " " -f2| cut -d "." -f4)))
  15. IFS=$'\n' sorted=($(sort <<<"${ip[*]}"))
  16. unset IFS
  17. for i in ${!sorted[*]}
  18. do
  19. if [[ ${var} -eq ${sorted[i]} ]];then : $((t=${i}*3));sleep ${t}m;echo "then go to sleep ${t}";break;fi
  20. done