在工作中, 常常会有几十上百的域名, 不可能一一去查看, 一不小心到期没续费就会造成很大的麻烦, 以此为前提写一个检测域名到期时间的脚本, 当到期时间小于等于 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
- }
- # 定义需要被检测的域名列表
- 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
结合任务计划, 每天执行一次即可~
来源: http://www.bubuko.com/infodetail-2802711.html