背景
公司内部使用企业微信作为通讯软件,因项目驻场每日上下班都要打卡,且每天或者周五统一进行报工操作。之前都是人为手工提醒,但有时候起来晚了或者加班忘了,就没有发信息提醒。原计划通过接口的形式,但忘记什么原因没有成功,所以直接改为shell脚本定时执行了。
步骤
添加机器人
1.打开企业信息群聊,点击右上角三个点, 添加群机器人 ,新创建一个机器人,起个名字;
2. 群里会显示你已经添加了机器人,群页面右侧显示你刚刚添加的机器人,双击查看资料,有显示Webhook网址,这个记下来且记得千万不要随便给别人,不然陌生人就能给你们群发信息了!!!信息泄露很危险!;
3. 可以在介绍那里写明这个机器人详细的作用,比如:打卡提醒等等;
4. 点击编辑按钮,在Webhook地址下面有个机器人配置说明,大家可以看看根据需求修改。
shell脚本编写
找到一台运行中不会停掉的服务器,在此服务器上写shell脚本及设置定时任务。
1.在/appadmin下新建脚本clock_in.sh及clock_out.sh
cd /appadmin
touch clock_in.sh
touch clock_out.sh
2.编辑脚本(此处用到刚刚需要记下来的Webhook地址)
vi clock_in.sh
#!/bin/bash
WEBHOOK_URL="刚刚记下来的Webhook地址"
# 消息内容
MESSAGE="Hello! Current time is $(date +'%Y-%m-%d %H:%M:%S')."
# 发送消息
curl -X POST "$WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "各位好,请打上班卡。",
"mentioned_list":["@all"],
}
}
vi clock_out.sh
#!/bin/bash
WEBHOOK_URL="刚刚记下来的Webhook地址"
# 消息内容
MESSAGE="Hello! Current time is $(date +'%Y-%m-%d %H:%M:%S')."
# 发送消息
curl -X POST "$WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "各位好,请打下班卡。",
"mentioned_list":["@all"],
}
}
vi report.sh
#!/bin/bash
WEBHOOK_URL="刚刚记下来的Webhook地址"
# 消息内容
MESSAGE="Hello! Current time is $(date +'%Y-%m-%d %H:%M:%S')."
# 发送消息
curl -X POST "$WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "text",
"text": {
"content": "今天记得报工呀!",
"mentioned_list":["@all"],
}
}
定时任务设置
正常的打卡时间是早9晚6,所以要早于9点,晚于6点。clock_in.sh的执行时间在周一到周五早上8点30分,clock_out.sh的执行时间在周一到周五晚上6点,report.sh的执行时间在每周五晚上6点。
crontab -e
增加内容:
30 8 * * 1-5 /appadmin/clock_in.sh
0 18 * * 1-5 /appadmin/clock_out.sh
0 18 * * 5 /appadmin/report.sh
crontab -l
可看到目前已申请的定时任务有哪些