您好,我的任务是查找域过期的剩余天数。输出应该是剩余天数(整数)所以我尝试过这种方式我可以将域作为参数传递
例如:- 我的域 - www.xplosa.com
脚本文件:- ./domain-exp.sh
执行方法:- ./domain-exp.sh www.xplosa.com
#!/bin/bash
target=$1
# Get the expiration date
expdate="$(whois $1 | egrep -i 'Registrar Registration Expiration Date:' | head -1)"
# Turn it into seconds (easier to compute with)
expdate=("$expdate" +%s)
# Get the current date in seconds
curdate=$(date +%s)
# Print the difference in days
echo ($expdate - $curdate) / 86400
这不是我期望的输出,请帮助我提前解决这个问题。
首先,如果到期日期描述类似于“到期日期:”或“到期日期:”,您的 grep 将不起作用。所以,让我们用这样的模式 grep :
grep -iE 'expir.*date|expir.*on'
。当然,这可能必须涉及。head -1
用于将结果限制为 1 行grep 将产生如下输出:
Expiry Date: 2020-08-10T07:47:34Z
所以我们只需要使用另一个 grep 保留最后一个单词:
grep -oE '[^ ]+$'
日期转换为秒和最终计算有一些问题。在下面更正的脚本中找到它们