Скрипт проверки периода оплаты домена

Дата | 22.11.2021

Скрипт проверки периода оплаты домена
Решил чуть модернизировать текущий скрипт проверки периода оплаты домена.
Доменов много, часто старшие менеджеры или владельцы доменов забывают продлить домены.
Так как данные whois не стандартизированы, данные выводятся разные у зон доменов.
Два списка доменов общий и домены (ru,su).
Скрипт помещает попавшие под условия скрипты домены в файл /tmp/domens.check.
Условия выборки в скрипте, предыдущий и текущий месяц.
Год выставляете вручную.
Можно переделать еще чуть скрипт для отправки на почту списка доменов.

cat /tmp/domens.check | mail -s "Domain lease ends." emails@email.local

Сам скрипт.

#!/bin/sh
DOMAINS=`cat /sh/dom`
DOMAINS_RU=`cat /sh/dom_ru`
MOUNTHS=$(date --date="last month" +%m)\|$(date +"%m")
DT=`date +"%d.%m.%Y"`

echo -e "Domain lease is ending, $DT.\n" > /tmp/domens.check

for f in $DOMAINS
do
    DOMS=`echo -n "$f - " && whois $f | awk '/Expiry Date/ {gsub(/T.*Z/, " ", $4); print $4}'`
    echo $DOMS | egrep "2021\-($MOUNTH)\-" >> /tmp/domens.check
done

for r in $DOMAINS_RU
do
    RU=`echo -n "$r - " && whois $r | awk '/paid-till/ {gsub(/T.*Z/, " ", $2); print $2}'`
    echo $RU | egrep "2021\-($MOUNTHS)\-" >> /tmp/domens.check
done

exit 0

Либо так сделать, без считывания всего списка доменов в переменную.

#!/bin/sh
MOUNTH=$(($(date +"%m")-1))\|$(date +"%m")

while read f; do
    DOM=`echo -n "$f - " && whois $f | awk '/Expiry Date/ {print $4}' | sed 's/T[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]Z/ /g;'`
    echo $DOM | egrep "2021\-($MOUNTH)\-" >> /tmp/domens.check
done < /sh/dom

while read n; do
    DOM_RU=`echo -n "$n - " && whois $n | awk '/Expiry Date/ {print $4}' | sed 's/T[0-9][0-9]\:[0-9][0-9]\:[0-9][0-9]Z/ /g;'`
    echo $DOM_RU | egrep "2021\-($MOUNTH)\-" >> /tmp/domens.check
done < /sh/dom_ru
exit 0

Пример содержания фалов.

cat /sh/dom
dom.com
dom1.net
dom2.org
cat /sh/dom_ru
dom.ru
my-dom.su

Вот и все.
Скрипт проверки периода оплаты домена.
Старый скрипт.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *