shell脚本crontab定时--企业微信机器人产品授权到期提醒

背景

公司内部使用企业微信作为通讯软件,现场环境使用产品需按期申请授权,否则到期后页面展示有问题影响用户使用,即便页面会展示产品授权的到期日,但每天都有事务处理忙起来连今天的日期都会忘记,所以现在准备通过shell脚本crontab定时的方法来发送消息提醒。【涉及到文件上传,请看完全篇后再实操】

步骤

添加机器人

1.打开企业信息群聊,点击右上角三个点, 添加群机器人 ,新创建一个机器人,起个名字;
2. 群里会显示你已经添加了机器人,群页面右侧显示你刚刚添加的机器人,双击查看资料,有显示Webhook网址,这个记下来且记得千万不要随便给别人,不然陌生人就能给你们群发信息了!!!信息泄露很危险!;
3. 可以在介绍那里写明这个机器人详细的作用,比如:产品授权到期提醒等等;
4. 点击编辑按钮,在Webhook地址下面有个机器人配置说明,大家可以看看根据需求修改。

上传产品授权文件+shell脚本编写

找到一台运行中不会停掉的服务器,在此服务器上写shell脚本及设置定时任务。

1. 准备表格

根据情况可以改为csv,因为我的数据情况不适用于csv,所以得写到表格中,然后表格粘贴到txt里,再上传到服务器指定路径。

序号环境日期备注
1测试环境2024-07-22申请单号123456789
2生产环境2024-10-22申请单号987654321

2. 将以上数据粘贴到txt中

license.txt,并上传到指定路径/appadmin

序号 环境 日期 备注
1 测试环境 2024-07-22 申请单号123456789
2 生产环境 2024-10-22 申请单号987654321

3. 在/appadmin下新建脚本license.sh

因为输出时默认带表头,所以设置为当输出内容大于3行再输出。
因1月、2月恰逢过年期间,10月又有十一假期,所以提醒时间要早些设为13天就提醒。其他月份正常按照7天提醒。

#!/bin/bash
# 当前日期
current_date=$(date +%Y-%m-%d)
# 当前月份
current_month=$(date +%m)
# 文本文件路径
text_file="/appadmin/license.txt"
#初始化变量output为空
output=""
# 逐行读取文件内容并处理
line_number=0
while IFS= read -r line; do
    line_number=$((line_number + 1))
    if [ $line_number -eq 1 ]; then
        # 跳过第一行(表头)
        continue
    fi
    # 使用空格作为分隔符拆分行数据
    columns=($line)
    # 第三列为日期
    date_str=${columns[2]}
    # 将日期字符串转换为时间戳
    date_timestamp=$(date -d "$date_str" +%s)
    current_timestamp=$(date -d "$current_date" +%s)
  # 计算日期差(以秒为单位)
    delta_seconds=$((date_timestamp - current_timestamp))
    delta_days=$((delta_seconds / 86400))  # 86400秒 = 1天
    # 判断条件
            if ([ $current_month -eq 01 ] || [ $current_month -eq 02 ] || [ $current_month -eq 10 ]) && [ $delta_days -le 13 ]; then
        # 如果当前月份是1月、2月或10月,并且日期差小于等于13天
#echo "$line"
output+=\n$""$line""
#echo "$output"
elif [ $delta_days -le 7 ]; then
        # 其他月份,日期差小于等于7天
        #echo "$line"
output+="\n"$""$line""
#echo "$output"
fi
done < "$text_file"
content=$output
#content=${echo -e "$output"}
echo ${#output}
echo -e "$output"
#echo -e ""$content""
date=$(date +%Y-%m-%d)
time=$(date "+%H:%M:%S")
content="
**产品授权到期提醒**
    >time:$date $time
    >info:
序号     环境   日期    备注
$content

"
webHookUrl="刚刚记下来的Webhook地址"
content='{"msgtype": "markdown","markdown": {"content": "'$content'","mentioned_list":"@all"},}'
if [ ${#output} -gt 3 ];then
curl --data-ascii "$content" $webHookUrl
echo "over!"
fi

4. 定时任务设置

每天上午9天都要执行脚本判断,收到提醒后就尽快去提醒,申请到新的授权后及时更新数据信息并上传。

crontab -e

增加内容:
0 9 * * 1-5 /appadmin/license.sh

crontab -l
可看到目前已申请的定时任务有哪些

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值