lcjqyml/wechatbot

提供一个新思路解决因为网络问题导致机器人离线

Moebyte opened this issue · 6 comments

#!/bin/bash
# 检测docker logs输出内容
if docker logs --tail=20 wx-bot | grep -q "details: 'Error:"; then
# 如果包含指定字样,则执行docker restart命令
docker restart wx-bot
echo "微信机器人已重启"
else
# 如果没有指定字样,则输出无故障信息
echo "微信机器人无故障"
fi
创建一个脚本,用crontab,每5分钟检测一次log,如果包含details: 'Error:这个字样,则自动重启

一样遇到网络问题,但解决不了的可以尝试一下

psumhm commented

一样遇到网络问题,但解决不了的可以尝试一下

重启不是要重新扫码吗?

一样遇到网络问题,但解决不了的可以尝试一下

重启不是要重新扫码吗?

你可以试一下,遇到错误后的短时间内重启,是不需要扫码的,你可以crontab设置短一点,比如2分钟一次

!/bin/bash
# 检测docker logs输出内容
cur_dateTime=$(date "+%Y%m%d%H%M%S")
if docker logs --tail=20 kelaiyin | grep -q "details: 'Error:"; then
# 如果包含指定字样,则执行docker restart命令
docker restart kelaiyin
curl --location --request POST 'http://xxxx:8080/send-mail/simple' --header 'Content-Type: application/json'  --data-raw '{"sendTo": "xxxx@qq.com","subject": "克莱茵微信机器人监控","text": "微信机器掉线了,正在尝试重启。等待 1 分钟后观察机器人状态。"}'
echo "微信机器人已重启"${cur_dateTime} >> /root/projects/bot/log.txt
else
# 如果没有指定字样,则输出无故障信息
echo "微信机器人无故障"${cur_dateTime} >> /root/projects/bot/log.txt
fi

这是我的脚本 掉线发邮件通知
https://github.com/lsCoding666/sendEmailApi

这个方法不错

sean2y commented

好主意