不喜欢开场白,还是直接上干货…
使用方法:
for d in baidu.com bing.com
修改为你的域名,多个用空格隔开登录https://slack.com/get-started 获取
Webhook URL
教程在后面https://hooks.slack.com/services/xxx/xxx/xxx 修改为你的
Webhook URL
- 测试要点:修改参数
n=129600000
将改好的脚本放到宝塔面板计划任务测试,运行,就会收到消息,测试收到消息再改回来2592000(单位秒),也就是30天到期提醒
5.微信接收消息技巧: 将你的邮件转发到QQ邮箱,打开微信,设置–通用–辅助功能–QQ邮箱提醒 slack默认15分钟发送一次新的消息
#!/bin/bash
#检测域名是否过期
#博客:blog.leshans.eu.org
#日期:20240123
#版本:v0.1
#当前日期时间戳,用于和域名的到期时间做比较
currentTimestamp=`date +%s`
#检测whois命令是否存在,不存在则安装whois包
isInstallWhois()
{
which whois >/dev/null 2>/dev/null
if [ $? -ne 0 ]
then
yum install -y whois || apt-get install whois -y
fi
}
notify()
{
expiredate=`whois $1 |grep 'Registry Expiry Date' |awk '{print $4}' |cut -d 'T' -f 1`
#上面的$1代表域名,遍历循环出来的。
#如果e_d的值为空,则过滤关键词'Expiration Time'
if [ -z "$expiredate" ]
then
expiredate=`whois $1|grep 'Expiration Time' |awk '{print $3}'`
fi
#将域名过期的日期转化为时间戳
expiredatestamp=`date -d $expiredate +%s`
#计算半个月一共有多少秒
# 15d 1296000 30d 2592000 35d 3024000 40d 3456000
n=2592000
timeBeforce=$[$expiredatestamp - $n] #过期时间30d以前的时间戳
timeAfter=$[$expiredatestamp + $n] #过期时间30d以后的时间戳
if [ $currentTimestamp -ge $timeBeforce ] && [ $currentTimestamp -lt $expiredatestamp ]
then
curl -X POST \
-H 'Content-type: application/json' \
--data '{"text":":warning:域名 '$1' 将在30天内过期. 域名 '$1' 到期日是 '$expiredate' @xuexiaobai"}' \
https://hooks.slack.com/services/xxx/xxx/xxx
fi
if [ $currentTimestamp -ge $expiredatestamp ]
then
curl -X POST \
-H 'Content-type: application/json' \
--data '{
"text":":interrobang:域名 '$1' 已过期. 域名 '$1' 到期日是 '$expiredate' @xuexiaobai"}' \
https://hooks.slack.com/services/xxx/xxx/xxx
fi
}
#检测上次运行的whois查询进程是否存在
#若存在,需要杀死进程,以免影响本次脚本执行
if pgrep whois &>/dev/null
then
killall -9 whois
fi
isInstallWhois
for d in baidu.com bing.com
do
notify $d
done
获取Webhook URL
教程
创建 Slack 团队:
- 如果你还没有 Slack 团队,可以在 Slack 官方网站上创建一个免费的团队账户。
创建工作区:
- 一旦你的团队创建好,你可以创建一个工作区,用于组织你的团队成员和频道。
创建频道:
- 频道是 Slack 中组织和分类消息的方式。你可以创建不同的频道,例如项目频道、团队频道等。
- 在 Slack 的左侧导航栏中,点击加号(+)按钮,然后选择 “创建频道”。
添加团队成员:
- 在 Slack 中邀请团队成员加入工作区,以便他们能够参与到你的工作和讨论中。
获取 Incoming Webhook URL:
- 如果你想使用脚本中的 Slack 通知功能,你需要创建一个 Incoming Webhook。
- 在 Slack 中,进入你想要接收通知的频道,点击频道名称,然后选择 “集成”。
- 在 “集成” 页面中,找到 “Incoming Webhooks” 并点击 “添加到此频道”。
- 配置 Incoming Webhook,并获取 Webhook URL。
使用 Slack Webhook URL:
- 在脚本中,你需要将 Slack Webhook URL 替换为你的 Incoming Webhook URL。这个 URL 用于向 Slack 发送通知消息。
运行脚本:
- 通过终端或脚本执行环境运行你的脚本,以开始监控域名有效期并发送通知到 Slack。
查看通知:
- 前提是域名过期或接近过期,Slack 将会收到相应的通知消息。