CRON 检查 Web 应用程序是否正常运行,如果出现问题则报告发生的情况

CRON 检查 Web 应用程序是否正常运行,如果出现问题则报告发生的情况

这是我在 bash 中的第一次迭代:这个 webapp 没有 postgres 但有 Apache 2.4、Tomcat 8。

我首先检查 200 http 响应。然后检查 http 服务器是否正在运行以及 tomcat 是否也在运行。

如果任何服务器宕机,我应该通过电子邮件发送消息并尝试重新启动。如果没有结果,将发送另一封电子邮件。

如果我只是执行 curl 或 wget,然后使用 journalctl 检查发生了什么,也许会更简单。但目前我无法在服务器上使用 journalctl。

任何帮助,将不胜感激。

SITE_UP_STATUS_GREP="HTTP/1.1\s200"

echo "* * * Start of Health Check * * *"
   
    MSG=""
    
    http200apache2=$(curl -I $WEBSITE  | grep -w $SITE_UP_STATUS_GREP)
    httpapache2=$(systemctl  is-active apache2 | grep  -w 'active')
    tomcat8=$(systemctl  is-active  tomcat8  | grep  -w 'active')
    
    
    MSG_HTTP="Apache substatus: "$(systemctl show -p SubState apache2)
    MSG_TC="Tomcat substatus: "$(systemctl show -p SubState tomcat8)
    echo "http-"$httpapache2
    echo "tc-"$tomcat8
    
    if [ -z "$http200apache2" ]; then
         if [ -z "$httpapache2" ] && [ -z "$tomcat8"  ]; then
              MSG="App - Status of servers Apache 2 and Tomcat 8: not active"$MSG_HTTP", "$MSG_TC  
         elif [ -z "$httpapache2"] && [ -n "$tomcat8"  ]; then
              MSG="App - Status of server Apache 2: not active"$MSG_HTTP  
         fi
    elif [ -z "$tomcat8" ]; then
         MSG="App - Status of  Tomcat 8: not active"$MSG_TC  
    fi
    echo $MSG
echo "* * * FIN * * *"

相关内容