curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/document_modifier.sh && chmod +x document_modifier.sh && ./document_modifier.sh
你只需要准备好钉钉报警机器人webhook地址就行。
文档:https://open.dingtalk.com/document/orgapp/custom-robot-access
以下内容为手动安装,不懂的地方可以看看
监控还要安装各种东西,会出岔子,折腾够呛,难免费时费力,所以,我的方案就是使用脚本,快速高效。脚本公开透明,放心食用~
文档:https://open.dingtalk.com/document/orgapp/custom-robot-access
记得在安全设置那里写上服务器IP地址,也就是你放脚本的服务器IP地址
最后复制webhook地址
mkdir -p /home/domain touch /home/domain/warnfile touch /home/domain/logssl touch /home/domain/serverlog touch /home/domain/check_ssl.txt
sudo apt-get update sudo apt-get install whois bc pip install requests
cd /home/domain wget https://raw.githubusercontent.com/woniu336/open_shell/main/domain_expiry_reminder.sh wget https://raw.githubusercontent.com/woniu336/open_shell/main/warnsrc.py wget https://raw.githubusercontent.com/woniu336/open_shell/main/daily_report.sh wget https://raw.githubusercontent.com/woniu336/open_shell/main/check_ssl.sh wget https://raw.githubusercontent.com/woniu336/open_shell/main/monitor_server.sh
设置权限:
chmod -R 755 /home/domain
文件名 | 需要修改的内容 |
---|---|
check_ssl.txt | 添加域名证书到期检测文件,每行一个域名 |
check_ssl.sh | TOKEN=“Webhook地址” |
monitor_server.sh | DINGTALK_WEBHOOK=“Webhook地址” |
domain_expiry_reminder.sh | for line in aaa.com bbb.com 多个域名空格隔开 |
warnsrc.py | url = ‘Webhook地址’ |
daily_report.sh | DINGTALK_WEBHOOK=“Webhook地址” |
提醒:
for line in aaa.com bbb.com
把aaa.com bbb.com移除,改成你的域名
此外monitor_server.sh还需要修改一个地方:
需要监控的服务器IP、端口、标签
declare -A TARGET_SERVERS=( #["8.8.8.8"]="端口|标签" ["192.168.1.8"]="3000|腾讯云HK" )
不把数值改大一点,是没有通知的,因为默认数值比较小,不然啥事没有就天天通知,岂不是烦人~
check_ssl.sh:if [ $days -lt 60 ]; #改成60天或者更大,方便测试
monitor_server.sh: [“192.168.1.8”]=“3000|腾讯云HK” 改成没有放行的端口
domain_expiry_reminder.sh: if [ $expiry_date -lt 200 ]; 改成200天
daily_report.sh: 手动运行测试,cd /home/domain && ./daily_report.sh
- daily_report.sh脚本很推荐,
- 因为会养成你每天下午2点就收到钉钉通知报告的习惯。时间一长,你会记得去看~
(crontab -l ; echo "30 2 */3 * * cd /home/domain && ./domain_expiry_reminder.sh >/dev/null 2>&1") | crontab - (crontab -l ; echo "0 14 * * * cd /home/domain && ./daily_report.sh >/dev/null 2>&1") | crontab - (crontab -l ; echo "10 3 * * * cd /home/domain && ./check_ssl.sh >/dev/null 2>&1") | crontab - (crontab -l ; echo "*/2 * * * * cd /home/domain && ./monitor_server.sh >/dev/null 2>&1") | crontab -
这四个命令都是用于向 crontab
添加定时任务的命令,具体解读如下:
域名到期提醒任务:
(crontab -l ; echo "30 2 */3 * * cd /home/domain && ./domain_expiry_reminder.sh >/dev/null 2>&1") | crontab -
/home/domain
目录并执行 domain_expiry_reminder.sh
脚本,将标准输出和错误输出重定向到 /dev/null
。每日报告任务:
(crontab -l ; echo "0 14 * * * cd /home/domain && ./daily_report.sh >/dev/null 2>&1") | crontab -
/home/domain
目录并执行 daily_report.sh
脚本,将标准输出和错误输出重定向到 /dev/null
。SSL证书检查任务:
(crontab -l ; echo "10 3 * * * cd /home/domain && ./check_ssl.sh >/dev/null 2>&1") | crontab -
/home/domain
目录并执行 check_ssl.sh
脚本,将标准输出和错误输出重定向到 /dev/null
。服务器监控任务:
(crontab -l ; echo "*/2 * * * * cd /home/domain && ./monitor_server.sh >/dev/null 2>&1") | crontab -
/home/domain
目录并执行 monitor_server.sh
脚本,将标准输出和错误输出重定向到 /dev/null
。这些命令通过将当前的 crontab
内容与新的任务行合并,然后将结果重新写入 crontab
,从而实现向 crontab
添加新的定时任务。