shell之检测域名到期时间并进行邮件通知
2018-10-11 11:22
597 查看
在工作中,常常会有几十上百的域名,不可能一一去查看,一不小心到期没续费就会造成很大的麻烦,以此为前提写一个检测域名到期时间的脚本,当到期时间小于等于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
结合任务计划,每天执行一次即可~
相关文章推荐
- Powershell检测AD账户密码过期时间并邮件通知
- 利用 ping 对域名或者IP进行网络检测,时间ms
- (python)域名查询服务(whois)程序+检查5位以内域名到期时间邮件报警抢注域名
- Powershell检测AD账户密码过期时间并邮件通知
- Powershell检测AD账户密码过期时间并邮件通知 推荐
- 检测AD密码过期时间并邮件通知
- Shell使用Epoch进行日期时间转换和计算的几个小函数
- 阿里云备案一般要多久时间?快速通过阿里云APP进行域名备案方法
- shell脚本——检测SSL证书过期时间
- 域名注册时间和到期时间的问题-金瑞帆建站
- PowerShell检测AD域用户密码到期邮件提醒
- 检测域名有效期的 Shell 脚本
- 在Linq to Sql中管理并发更新时的冲突(3):使用记录的时间戳进行检测
- shell启动另一个脚本进行统计,awk在每一行添加当前时间
- 检测环境中是否有core文件并自动发送邮件通知
- shell实践百例计划(1)---备份MYSQL并发邮件通知
- Shell使用date对输入时间进行加减
- shell检测网站状态码和访问时间
- Shell 脚本基础 - 使用 if 语句进行条件检测
- 自动检测网络映射文件夹的内容,并邮件通知