​Shell​​ 脚本实战之报警监控

0. 需求

今天碰到的一个需求是:我们部门的人晚上需要看钉钉监控,手动排监控表很麻烦,于是想着使用shell 整一个脚本,用以轮流通知大家监控。

1. 代码

#!/bin/bash
startDay=20181129 #the start day of calculate
str="A,B,C,D,E,F,G,H"

oldIFS=$IFS
IFS=,
arr=($str)

today=`date "+%Y%m%d"`

for ((i = 0;i<1000;i++))
do
tmp=`date -d "$startDay +$i days" +"%Y%m%d"`
if [ $tmp -eq $today ]
then
res=`expr $i % 8`
mes="今天值班的人是: ${arr[$res]}"
curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxaaaabbbbccccdddzzz' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'$mes'"
}
}';
fi
break
done

echo $mes
#date -d"20140101 -1 days" +"%Y%m%d" 指定日期的加减法

3. ​​crontab​​ 调用

使用 crontab 进行每天调用一次即可。​​15 10 * * * /data/work/shells/notifyMonitor.sh​