【发布时间】:2018-04-20 08:02:03
【问题描述】:
#!/bin/bash
DOM="onet.pl wp.pl"
for d in $DOM
do
echo -n "$d - "
whois $d | egrep -i 'Expiration|Expires on' | head -1
# If you need list..
whois $d | egrep -i 'Expiration|Expires on' | head -1 >> /tmp/domain.date
expdate="$(whois $d | egrep -i 'Expiration|Expires on' | head -1)"
#to seconds
expdate="$(date -d"$expdate" +%s)"
#current date
curdate="$(date +%s)"
printf "Expiration date : $expdate\n"
printf "Current date : $curdate\n"
printf "Days for expiration : %s\n" "$(((expdate-curdate)/86400))"
echo ""
done
我得到这样的结果:
onet.pl - option expiration date: 2019.08.16 16:52:03
date: invalid date ‘option expiration date: 2019.08.16 16:52:03’
Expiration date :
Current date : 1524210803
Days for expiration : -17641
wp.pl - option expiration date: 2020.02.10 10:51:12
date: invalid date ‘option expiration date: 2020.02.10 10:51:12’
Expiration date :
Current date : 1524210803
Days for expiration : -17641
看起来日期格式有问题,我可能是因为文本+日期而不是纯日期。因此,我相信其余部分无法正常工作。任何想法如何使到期日期有效?
【问题讨论】:
-
将“set -x”添加到你的脚本中,你可以看到bash正在运行的命令。
-
请注意,除非您真的永远只针对单个 whois 服务器,否则出于各种原因,以通用方式解析 whois 服务器并不适合胆小的人。如果有需要,我建议您使用一些现有的库来为您做到这一点。