Files
HomeServerServices/proxy/update_dns.sh
2026-01-04 06:56:55 -06:00

50 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Проверяем наличие необходимых переменных
if [ -z "$DDNS_TOKEN" ] || [ -z "$DDNS_DOMAINS" ]; then
echo "Ошибка: Переменные DDNS_TOKEN или DDNS_DOMAINS не заданы."
exit 1
fi
while true; do
echo "Определяем внешний IPv4..."
CURRENT_IP=$(curl -s https://ifconfig.me)
if [ -z "$CURRENT_IP" ]; then
echo "Не удалось получить IP. Повтор через 30 секунд..."
sleep 30
continue
fi
echo "Ваш IP: $CURRENT_IP. Начинаем обновление доменов..."
ALL_SUCCESS=true
for DOMAIN in $DDNS_DOMAINS; do
echo "Обновляю домен: $DOMAIN"
# Выполняем запрос PUT согласно вашему формату
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
-X 'PUT' "https://cloud.alviy.com/api/v1/ddns/domain/$DOMAIN" \
-H 'accept: application/json' \
-H "Authorization: Bearer $DDNS_TOKEN" \
-H 'Content-Type: application/json' \
-d "{ \"ipv4\": [ \"$CURRENT_IP\" ] }")
if [ "$RESPONSE" == "200" ]; then
echo "Успешно обновлено: $DOMAIN"
else
echo "Ошибка обновления $DOMAIN. Код ответа: $RESPONSE"
ALL_SUCCESS=false
fi
done
if [ "$ALL_SUCCESS" = true ]; then
echo "Все задачи выполнены успешно. Завершаю работу контейнера."
exit 0
else
echo "Некоторые домены не обновились. Повторная попытка через 60 секунд..."
sleep 60
fi
done