任何网站对外提供服务,都需要有一个域名,就像每个人都有人名,网站的名字就是这个域名。如果你想做一个网站,首先就需要租借一个域名。

当我们管理的域名数量非常多的时候,就很容易忘记为这些域名续期从而导致过期并回收。本案例的需求是监控指定的域名是否到期。

具体要求如下:

1)写一个函数,域名以参数的形式传递给这个函数;2)域名到期前的一周和到期后的一周(两周),每天发送一封告警邮件;3)脚本每天执行一次。

邮件脚本如下:

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mine.text import MIMEText
import sys
mail_host = 'stmp.163.com'
mail_user = 'test@163.com'
mail_pass = 'your_mail_password'
mail_postfix = '163.com'
def send_mail(to_list,subject,content):me = "zabbix 监控告警平台"+"<"+mail_user+"@"+mail_postfix+">"msg = MIMEText(content,'plain','utf-8')msg['Subject'] = subjectmsg['From'] = memsg['to'] = to_listtry:s = smtplib:SMTP()s.connect(mail_host)s.login(mail_user,mail_pass)s.sendmail(me,to_list,msg.as_string())s.close()return Trueexcept Exception,e:print str(e)return False
if __name__ == "__main__"send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

参考脚本如下:

#!/bin/bash
#用于检测域名是否过期#定义收件人邮箱
mail="/usr/local/sbin/mail.py"
mail_user=admin@admin.comif ! rpm -q jwhois &>/dev/null
thenyum install -y jwhois           #没有whois命令就安装
fiecho  "`whois $1`" > /tmp/domain.txtcheck_com()
{expiration_date_com=`cat /tmp/domain.txt |grep "Expiration Date" |awk '{print $5}' |cut -c1-10 |awk -F '-' '{print $1 $2 $3}'`i=7while [ $i -ge 0 ]doalert_date1=`date -d "+$i day" +%F |awk -F '-' '{print $1 $2 $3}'`alert_date2=`date -d "-$i day" +%F |awk -F '-' '{print $1 $2 $3}'`if [ "$expiration_date_com" -eq "$alert_date1" ]then#echo -e "$1 此域名还有 $i 天过期,请尽快更新!"python $mail $mail_user "$1 此域名还有 $i 天过期,请尽快更新!" 2>/dev/nullelif [ "$expiration_date_com" -eq "$alert_date2" ]then#echo -e "$1 此域名已经过期 $i 天,请尽快更新!"python $mail $mail_user "$1 此域名已经过期 $i 天,请尽快更新!" 2>/dev/nullfii=$[$i-1]done
}check_cn()
{expiration_date_cn=`cat /tmp/domain.txt |grep "Expiration Time" |awk '{print $3}' |awk -F '-' '{print $1 $2 $3}'`i=7while [ $i -ge 0 ]doalert_date1=`date -d "+$i day" +%F |awk -F '-' '{print $1 $2 $3}'`alert_date2=`date -d "-$i day" +%F |awk -F '-' '{print $1 $2 $3}'`if [ "$expiration_date_cn" -eq "$alert_date1" ]then#echo -e "$1 此域名还有 $i 天过期,请尽快更新!"python $mail $mail_user "$1 此域名还有 $i 天过期,请尽快更新!" 2>/dev/nullelif [ "$expiration_date_cn" -eq "$alert_date2" ]then#echo -e "$1 此域名已经过期 $i 天,请尽快更新!"python $mail $mail_user "$1 此域名已经过期 $i 天,请尽快更新!" 2>/dev/nullfii=$[$i-1]done
}domain=`echo $1 |cut -d '.' -f 2`if [ "$domain" == "com" ]
thencheck_com $1
elif [ "$domain" == "cn" ]
thencheck_cn $1
fi

增加计划任务:

0 8 * * * /usr/local/sbin/check_domain.sh alibaba.com         #以 alibaba.com 为例,每天早上8点检查一次

10. 检测域名是否到期相关推荐

  1. 案例十、检测域名是否到期

    如果你想做一个网站,首先需要购买一个域名,与其说是购买不如说是租用,因为你要想使用这个域名,每年都需要缴纳一笔费用.既然是租用,所以就有期限,在到期前没有续费,则该域名会被收回,其他人可以注册并使用这 ...

  2. zabbix 监控域名注册到期时间

    前言 一.运行环境 二.操作步骤 1.Centos添加whois查询功能 2.创建SH脚本 3.设置相关配置 总结 前言 搭建好了zabbix监控平台后,想着充分应用平台.公司注册的域名一般都三年以上 ...

  3. linux shell 域名 ip,Shell脚本一种检查Linux中域名和IP地址所有权信息、检查多个域名的到期日期工具...

    Shell脚本一种检查Linux中域名和IP地址所有权信息.检查多个域名的到期日期工具 jwhois是一个命令行实用程序,可从whois服务器(whois数据库)中获取有关域名所有权的信息. Whoi ...

  4. Python验证信用卡号的有效性(算法)(称为Luhn检测或者mod 10 检测)

    转载自: https://baijiahao.baidu.com/s?id=1662553267127372613&wfr=spider&for=pc 有修改 一个信用卡号必须是13到 ...

  5. 域名证书到期监控告知

    域名证书到期提前监控告知 通过该网站进行服务证书监控 证书到期监控:https://letsmonitor.org/contacts 通过邮件告警通知 个人用户:baolin2200@gmail.co ...

  6. 域名会到期吗?到期的域名会怎么处理呢?

    域名多久到期? 域名注册时,有时长选择,最低一年,最高十年.比如选择注册一年,那么一年后到期:选择注册三年,那么三年后到期. 域名到期后,还能使用吗? 域名到期后,如果没有及时续费,那么域名将无法使用 ...

  7. php判断域名是否解析源码,检测域名是否被墙API接口源码

    昨日博客有个人问有没有检测域名被墙的. 今儿根据易名网的接口写了一个. 速度还可以的,大家可以拿来用用! /* * 检测域名是否被墙 * www.aeink.com */ //查询域名 $domain ...

  8. 微信域名拦截检测API源码 检测域名是否能在微信正常打开

    可一键检测域名是否被微信屏蔽(网站是否可以在微信客户端中打开),适合做防红防拦截功能,便于及时更换域名. <?php header('Content-type: text/json;charse ...

  9. 微信官方接口检测域名是否被封|微信域名防封检测

    使用微信网页版的过程中发现一个官方接口可用于检测域名是否被封 https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxcheckurl?requrl=http%3a%2f ...

最新文章

  1. Jeff Dean| 面向系统的机器学习和面向机器学习的系统
  2. hdu 3932Groundhog Build Home 【爬山算法】
  3. Angular sort interactively test
  4. Subversion之路--实现精细的目录访问权限控制(v1.0 更新于2006.12.05)(二)
  5. java字节码_掌握Java字节码
  6. 965. 单值二叉树
  7. 南京Uber优步司机奖励政策(12月28日到1月3日)
  8. 一个优秀的公司如何才能成为一个卓越的公司?
  9. OLTP和OLAP是什么
  10. 验证手机号码的JS方法
  11. 苹果Mac时间日程管理工具:Things 备注支持 Markdown
  12. WPF:MVVM模式下ViewModel关闭View
  13. 【学习笔记】子集生成的方法
  14. Ruby Rails开发资源
  15. IKEv2的认证数据生成过程
  16. 远程办公易发数据泄露?教你5个策略防患于未然
  17. 联想微型计算机a300,联想一体机A300.ppt
  18. java读取hadoop数据_从Hadoop URL中读取数据_hadoop 数据读取_hadoop读取文件
  19. 联通C网彩信群发的问题
  20. 串行RapidIO(Serial RapidIO,SRIO):IP核基础知识

热门文章

  1. 管理领英邮件类型和频率
  2. 春季高考山东招生学校计算机,2017年山东春季高考信息技术专业本科招生院校...
  3. SFP DDM接口的测量值计算
  4. 快手校招工程笔试: 获得最多的奖金
  5. 2017美团秋招面试
  6. 禁止灵格斯2.7弹出“新奇英语 互动锐词”广告窗口的解决方法
  7. 持续不断更新中... 自己整理的一些前端知识点以及前端面试题,包括vue2,vue3,js,ts,css,微信小程序等
  8. (转)申请企业级IDP、真机调试、游戏接入GameCenter 指南、游戏接入OpenFeint指南;...
  9. 祝贺| 蚂蚁金服年轻交互设计师陈凯翔,荣获HCII 2018 最佳论文奖
  10. SMS平台发短信的代码