shell之检测域名到期时间并进行邮件通知

本文介绍了一个用于自动检测域名到期时间的shell脚本。该脚本能够定期检查域名是否即将到期,并在剩余时间不足7天时通过邮件通知管理员,避免因忘记续费导致的网站停运风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在工作中,常常会有几十上百的域名,不可能一一去查看,一不小心到期没续费就会造成很大的麻烦,以此为前提写一个检测域名到期时间的脚本,当到期时间小于等于7天时,进行邮件通知;
check_domain.sh

#!/bin/bash
source /etc/profile
#定义邮件发送列表
maillist=(
  zhengwei.liu@xxx.cn
  11359605@xx.com
)
#发送邮件函数
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
}
is_install_whois
#定义需要被检测的域名列表
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

结合任务计划,每天执行一次即可~

转载于:https://blog.51cto.com/liuzhengwei521/2298598

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值