1. 程式人生 > >shell之檢測域名到期時間並進行郵件通知

shell之檢測域名到期時間並進行郵件通知

麻煩 .cn file rep 列表 time int mes 形式

在工作中,常常會有幾十上百的域名,不可能一一去查看,一不小心到期沒續費就會造成很大的麻煩,以此為前提寫一個檢測域名到期時間的腳本,當到期時間小於等於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之檢測域名到期時間並進行郵件通知