如何用脚本轻松查询并监控域名到期时间,防止意外失效?
- 内容介绍
- 文章标签
- 相关推荐
在日益复杂的网络环境里域名失效往往是公司和个人最头疼的问题之一。一个未及时续费的域名可能导致网站宕机、SEO排名骤降,甚至损失客户信任。手工检查每个域名的到期时间不仅耗时还容易遗漏。
再看痛点一,手动检查繁琐且易出错
如果你管理的是几十、上百甚至千个域名。单靠浏览器或命令行逐个查询几乎不可能做到实时掌握。错误的查询结果会让你误以为域名仍有效,直至真正到期。不过,
说到痛点二。缺乏预警机制导致突发停服
没有自动化预警,你只能在网站访问异常后才意识到域名已过期。对于需要24/7运行的网站这种被动反应往往代价高昂。
说到痛点三,维护成本高。资源浪费
人力资源本可以投入更有价值的工作,却被重复检查和手动发送邮件占据。只要能用脚本统一管理,就能显著降低运营成本。
方法这方面,脚本化查询与监控域名到期时间
下面给出一个完整的 Python 脚本示例。 它将:
- 一次性读取所有需要监控的域名;
- 通过 WHOIS 查询获取正式到期日期;
- 把结果写入 CSV 供后续分析或报警;
- 可自行 为邮件通知或自动续费请求。
import whois
import csv
from datetime import datetime
# 1️⃣ 读取待检测的域名列表
with open as f:
domains =
# 2️⃣ 创建 CSV 保存结果
with open as csvfile:
fieldnames =
writer = csv.DictWriter
writer.writeheader
# 3️⃣ 循环查询每个域名
for domain in domains:
再看try。info = whois.whois
exp_date = info.expiration_date
if isinstance: # 有些返回列表
exp_date = exp_date
if exp_date:
# 转成标准 yyyy-mm-dd 格式
exp_str = datetime.strftime
至于else,exp_str = 'N/A'
except Exception as e:
print
exp_str = 'N/A'
writer.writerow
print
一键运行脚本并生成报告
Bash 快速启动:
#!/usr/bin/env bash
python3 domain_checker.py
echo "✅ 域名到期信息已写入 domain_expiries.csv"
将上述 Bash 文件保存为 run_check.sh 并赋予执行权限:
chmod +x run_check.sh
./run_check.sh
说到进阶监控,邮件预警与自动续费触发器
-
Email 通知:
使用
smtplib或第三方库时自动发送提醒邮件。 - Zabbix 集成: 将脚本改为 Zabbix UserParameter。可让监控面板实时展示各域名状态,并在阈值触发时弹窗报警。
- Cron 定时任务: cron 0 1 * * * /usr/bin/python3 /path/to/domain_checker.py> /dev/null 2>&1 每天凌晨一点自动执行一次。
使用 Docker 部署 Puff 域名监控工具
Puff 是一款基于 Docker 的轻量级监控工具。支持每30分钟自动执行 WHOIS 查询,并在即将过期前推送通知。部署步骤简洁,可直接复制官方镜像即可运行:
docker run -d --name puff_monitor \
-v /path/to/config:/etc/puff \
registry.example.com/puff:latest
与接下来行动计划
- Create a clean domain list:
-
Add all domains into
/domains.txt.
- Scripting:
- Edit Python script to fit your email server or Zabbix settings.
- Audit:
- A few manual checks against a handful of domains to confirm accuracy.
- Add script to cron or Docker;set up email alerts.
在日益复杂的网络环境里域名失效往往是公司和个人最头疼的问题之一。一个未及时续费的域名可能导致网站宕机、SEO排名骤降,甚至损失客户信任。手工检查每个域名的到期时间不仅耗时还容易遗漏。
再看痛点一,手动检查繁琐且易出错
如果你管理的是几十、上百甚至千个域名。单靠浏览器或命令行逐个查询几乎不可能做到实时掌握。错误的查询结果会让你误以为域名仍有效,直至真正到期。不过,
说到痛点二。缺乏预警机制导致突发停服
没有自动化预警,你只能在网站访问异常后才意识到域名已过期。对于需要24/7运行的网站这种被动反应往往代价高昂。
说到痛点三,维护成本高。资源浪费
人力资源本可以投入更有价值的工作,却被重复检查和手动发送邮件占据。只要能用脚本统一管理,就能显著降低运营成本。
方法这方面,脚本化查询与监控域名到期时间
下面给出一个完整的 Python 脚本示例。 它将:
- 一次性读取所有需要监控的域名;
- 通过 WHOIS 查询获取正式到期日期;
- 把结果写入 CSV 供后续分析或报警;
- 可自行 为邮件通知或自动续费请求。
import whois
import csv
from datetime import datetime
# 1️⃣ 读取待检测的域名列表
with open as f:
domains =
# 2️⃣ 创建 CSV 保存结果
with open as csvfile:
fieldnames =
writer = csv.DictWriter
writer.writeheader
# 3️⃣ 循环查询每个域名
for domain in domains:
再看try。info = whois.whois
exp_date = info.expiration_date
if isinstance: # 有些返回列表
exp_date = exp_date
if exp_date:
# 转成标准 yyyy-mm-dd 格式
exp_str = datetime.strftime
至于else,exp_str = 'N/A'
except Exception as e:
print
exp_str = 'N/A'
writer.writerow
print
一键运行脚本并生成报告
Bash 快速启动:
#!/usr/bin/env bash
python3 domain_checker.py
echo "✅ 域名到期信息已写入 domain_expiries.csv"
将上述 Bash 文件保存为 run_check.sh 并赋予执行权限:
chmod +x run_check.sh
./run_check.sh
说到进阶监控,邮件预警与自动续费触发器
-
Email 通知:
使用
smtplib或第三方库时自动发送提醒邮件。 - Zabbix 集成: 将脚本改为 Zabbix UserParameter。可让监控面板实时展示各域名状态,并在阈值触发时弹窗报警。
- Cron 定时任务: cron 0 1 * * * /usr/bin/python3 /path/to/domain_checker.py> /dev/null 2>&1 每天凌晨一点自动执行一次。
使用 Docker 部署 Puff 域名监控工具
Puff 是一款基于 Docker 的轻量级监控工具。支持每30分钟自动执行 WHOIS 查询,并在即将过期前推送通知。部署步骤简洁,可直接复制官方镜像即可运行:
docker run -d --name puff_monitor \
-v /path/to/config:/etc/puff \
registry.example.com/puff:latest
与接下来行动计划
- Create a clean domain list:
-
Add all domains into
/domains.txt.
- Scripting:
- Edit Python script to fit your email server or Zabbix settings.
- Audit:
- A few manual checks against a handful of domains to confirm accuracy.
- Add script to cron or Docker;set up email alerts.

