Переписал свой скрипт для проверки #domain #expiration используемый в #zabbix. Делюсь.
#!/usr/bin/env bash
DOMAIN="$1"
# Проверка, что домен передан
if [ -z "$DOMAIN" ]; then
echo "Ошибка: домен не указан"
exit 1
fi
# Извлечение домена второго уровня (например, example.com из sub.sub.example.com)
# Разбиваем по точкам и берём последние два сегмента
SECOND_LEVEL_DOMAIN=$(echo "$DOMAIN" | awk -F. '{print $(NF-1)"."$NF}')
# Получаем дату истечения домена
exdate=$(whois "$SECOND_LEVEL_DOMAIN" | grep -E 'paid|Expire|Expiry' | grep -o -E '[0-9]{4}.[0-9]{2}.[0-9]{2}|[0-9]{2}/[0-9]{2}/[0-9]{4}')
# Проверка, что дата истечения найдена
if [ -z "$exdate" ]; then
echo "Ошибка: не удалось определить дату истечения для $SECOND_LEVEL_DOMAIN"
exit 1
fi
# Преобразуем дату в epoch
expire=$(date -d "$exdate" '+%s')
today=$(date '+%s')
# Вычисляем разницу в секундах и днях
leftsec=$((expire - today))
leftdays=$((leftsec / 86400))
echo "$leftdays"