Получаем данные от сервиса whois дата окончания аренды домена.
Доменов курируемых скопилось много.
Решил автоматизировать проверку даты окончания оплаченного периода у доменов.
Для начало нужно установить в системе маленькую утилиту whois.
Получим список активных доменов у web сервера nginx.
egrep -r listen /usr/local/etc/nginx/sites-enabled/ | egrep '443' | cut -f7 -d / | cut -f1 -d : | sort -u | grep -v '\..*\.'
Список активных доменов web сервера apache.
egrep -r "VirtualHost.*\:443" /usr/local/etc/apache24/sites-enabled/ | cut -f7 -d / | cut -f1 -d : | sort -u | grep -v '\..*\.'
Можно еще так.
egrep -r "VirtualHost.*\:443" /usr/local/etc/apache24/sites-enabled/ | cut -f7 -d / | cut -f1 -d : | sort -u | grep -v '[[:alnum:]]\+\.[[:alnum:]]\+\.'
У списка доменов, убираем домены 3-го уровня.
Далее сам скрипт.
$ cat sh/check_dom.sh #!/bin/bash DOMAIN=`cat /home/sh/domens` DOMAIN_RU=`cat /home/sh/domens_ru` for f in $DOMAIN do dom=`/usr/bin/whois $f | egrep 'Expiry Date|Domain Name' | egrep -B1 '2021(-|.)(06|07|08)(-|.)[0-9]*' | sed 's/T[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]Z/ /g;'` echo "$dom" done for r in $DOMAIN_RU do dom1=`/usr/bin/whois $r | egrep 'paid\-till|domain\:' | egrep -B1 '2021(-|.)(06|07|08)(-|.)[0-9]*' | sed 's/T[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]Z/ /g;'` echo "$dom1" done exit 0
2021(-|.)(06|07|08)(-|.)[0-9]* — Тут реализована проверка на дату (год/месяц/день).
Содержимое файлов со списком доменов.
$ cat /home/sh/domens local.club local.com local24.net local.biz local1.club local.net
В /home/sh/domens_ru список доменов зоны ru, так как выдача данных whois отличается, пришлось сделать в два этапа.
Запустим наш скрипт.
$ sh sh/check_dom.sh Domain Name: local.com Registry Expiry Date: 2021-07-12 domain: LOCAL.RU paid-till: 2021-06-21
Вот и вся проверка whois дата окончания аренды домена.