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