
Решил чуть модернизировать текущий скрипт проверки периода оплаты домена.
Доменов много, часто старшие менеджеры или владельцы доменов забывают продлить домены.
Так как данные 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
Вот и все.
Скрипт проверки периода оплаты домена.
Старый скрипт.