Bash скрипт, срок действия домена с отправкой электронной почты

Я пытаюсь реализовать решение для автоматической отправки почты, когда он находит домен, срок действия которого был превышен. Я действительно новичок в этом, поэтому мне удалось добраться до приведенного ниже кода, который показывает даты истечения срока действия и отправляет электронное письмо с выводом.

Вид помощи, которую я ищу, - это, по крайней мере, подсказка, как сравнить дату истечения срока с текущей датой и получить результат в виде количества дней. Я буду очень признателен за любую помощь.

#!/bin/bash
DOM="onet.pl wp.pl"
for d in $DOM
do
  echo -n "$d - "
  whois $d | egrep -i 'Expiration|Expires on' | head -1
   whois $d | egrep -i 'Expiration|Expires on' | head -1 >> /tmp/domain.date
  echo ""
done
#[ -f /tmp/domain.date ] && mail -s 'Domain renew / expiration date' myemail@gmail.com < /tmp/domain.date || :

1 ответ

Решение

Смотрите не дальше, чем date Команда, в ней есть все что нужно!

Вот простое решение с использованием date -d разобрать дату:

# Get the expiration date
expdate="$(whois $d | egrep -i 'Expiration|Expires on' | head -1)"
# Turn it into seconds (easier to compute with)
expdate="$(date -d"$expdate" +%s)"
# Get the current date in seconds
curdate="$(date +%s)"
# Print the difference in days
printf "Number of days to expiration : %s\n" "$(((expdate-curdate)/86400))"

Удачи!

Другие вопросы по тегам