shell之检测域名到期时间并进行邮件通知
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell之检测域名到期时间并进行邮件通知相关的知识,希望对你有一定的参考价值。
在工作中,常常会有几十上百的域名,不可能一一去查看,一不小心到期没续费就会造成很大的麻烦,以此为前提写一个检测域名到期时间的脚本,当到期时间小于等于7天时,进行邮件通知;
check_domain.sh
#!/bin/bash
source /etc/profile
#定义邮件发送列表
maillist=(
[email protected]
[email protected]
)
#发送邮件函数
send_mail(){
SUBJECT="$1域名即将到期"
if [ $2 -ge 0 ];then
CONTENT="$1:此域名即将到期,剩余时间已不足$2天,请及时续费!"
for mail in ${maillist[*]};do
echo -e "${CONTENT}" | mail -s "${SUBJECT}" $mail
done
else
day=$((-$2))
CONTENT="$1:此域名已到期,已超出$day天,请及时续费!"
for mail in ${maillist[*]};do
echo -e "${CONTENT}" | mail -s "${SUBJECT}" $mail
done
fi
}
#检测whois命令是否存在,不存在则安装jwhois包
is_install_whois()
{
which whois &> /dev/null
if [ $? -ne 0 ];then
yum install -y jwhois
fi
}
#定义需要被检测的域名列表
domainlist=(
baidu.com
)
#检测域名到期时间并通知
for domain in ${domainlist[*]};do
#取出域名过期时间
expire_date=`whois $domain | grep "Expiration Time" | awk ‘{print $3}‘`
if [ -z "$expire_date" ];then
expire_date=`whois $domain | grep ‘Expiry Date‘|awk ‘{print $4}‘|cut -d ‘T‘ -f 1`
fi
#转换成时间戳
expire_date_timestamp=`date -d $expire_date +%s`
#以时间戳的形式显示当前时间
now=`date ‘+%s‘`
#域名到期剩余天数
time_left=$[$[$expire_date_timestamp-$now]/86400]
if [ $time_left -le 7 ];then
send_mail $domain $time_left
fi
done
结合任务计划,每天执行一次即可~
以上是关于shell之检测域名到期时间并进行邮件通知的主要内容,如果未能解决你的问题,请参考以下文章
Linux学习-->如何通过Shell脚本实现发送邮件通知功能?
持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知
检测所有磁盘分区使用率和inode使用率,当发现某分区容量或者inode量大于85%时,发邮件通知你