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