mirror of
https://github.com/StepanovPlaton/HomeServerServices.git
synced 2026-04-03 12:20:43 +04:00
50 lines
1.8 KiB
Bash
Executable File
50 lines
1.8 KiB
Bash
Executable File
#!/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
|