分页: 1 / 1

Shell脚本监测Domoticz容器服务状态

发表于 : 周六 12月 23, 2023 23:27
DT27
这几天调试外地一台Domoticz脚本时把唯一外部能访问的https服务搞挂了,神奇的是Domoticz容器本身没事,所以没自动重启。
就写了个脚本自动访问Domoticz链接查询状态。如果访问失败就自动重启容器。
脚本check_domoticz.sh文件内容如下:

代码: 全选

#!/bin/bash

# 定义要监测的HTTP服务的URL
URL="https://192.168.123.10:443/json.htm?type=command&param=getSunRiseSet"

# 定义要重启的Docker容器的名称
CONTAINER_NAME="domoticz"

# 定义重启容器的命令
RESTART_COMMAND="docker restart $CONTAINER_NAME"

# 监测HTTP服务状态并解析返回的JSON数据
HTTP_STATUS=$(curl --insecure -s -o /dev/null -w "%{http_code}" $URL)
if [ "$HTTP_STATUS" -eq 200 ]; then
    echo "DomoticzHTTPS服务请求成功"
    domoticz_status=$(curl --insecure -s "$URL" | jq -r '.status')
    if [ "$domoticz_status"="OK" ]; then
        echo "Domoticz运行正常"
    else
        echo "Domoticz运行不正常,将重启容器..."
        # 执行重启容器的命令
        $RESTART_COMMAND
        echo "Domoticz容器已重启。"
    fi
else
    echo "DomoticzHTTPS服务请求失败,将重启容器..."
    # 执行重启容器的命令
    $RESTART_COMMAND
    echo "Domoticz容器已重启。"
fi
推荐配置crontab每5分钟执行一次:

代码: 全选

*/5 * * * * /root/domoticz/config/check_domoticz.sh