shell之檢測域名到期時間並進行郵件通知
阿新 • • 發佈:2018-10-11
麻煩 .cn file rep 列表 time int mes 形式 在工作中,常常會有幾十上百的域名,不可能一一去查看,一不小心到期沒續費就會造成很大的麻煩,以此為前提寫一個檢測域名到期時間的腳本,當到期時間小於等於7天時,進行郵件通知;
check_domain.sh
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之檢測域名到期時間並進行郵件通知