lcjqyml / wechatbot

A chatbot for wechat.
GNU Affero General Public License v3.0
247 stars 40 forks source link

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

Closed Moebyte closed 1 year ago

Moebyte commented 1 year ago

!/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:这个字样,则自动重启

Moebyte commented 1 year ago

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

psumhm commented 1 year ago

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

重启不是要重新扫码吗?

Moebyte commented 1 year ago

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

重启不是要重新扫码吗?

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

lsCoding666 commented 1 year ago
!/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

linxp001 commented 1 year ago

这个方法不错

sean2y commented 1 year ago

好主意