如何编写脚本来验证Jboss刚刚启动

如何编写脚本来验证Jboss刚刚启动

我必须编写一个脚本来运行 JBoss,并验证并通知 JBoss 刚刚在系统启动时启动。下面的代码是与验证部分相关的。请纠正我犯的逻辑和语法错误。

我正在记录的日志grep

2017-10-27 12:04:13,933 INFO [org.jboss.bootstrap.microcontainer.ServerImpl] (main) JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] 开始于 1m: 1秒:804毫秒

!/bin/bash

maxLoops=30 numLines=200 timeToSleep=3 success=0 Server_Log=$(/path_for_log/server.log)

        for (( try=0; try < maxLoops; ++try ));
        do
           atail=`tail -n $numLines $Server_Log | grep "Started" | awk {'print $12'}`

        if [[ $atail == "Started" ]]
                then
                        success=1
                        break
              fi
                sleep $timeToSleep
        done
        if (( success ));
        then
                echo "Jboss started successfully"
        else
                echo "successful starting of Jboss is not ensured"

fi

请查找我在以 root 身份执行脚本时遇到的以下错误:

$ ./verify_jboss.sh:
 line 3: /log_path/server.log: Permission denied

答案1

如果可能的话检查 Jboss 是否正在侦听该端口:

if curl -Is http://localhost:80/ > /dev/null
then
   echo OK
else
   echo FAIL
fi

您只需要一个外部程序:卷曲

编辑

另一种方法是测试特定内容,例如Contact网页上的内容。只有当网络服务器正在运行并且有到数据库的连接时,它才会正确响应。

if grep -qc "Contact" <(curl -s http://localhost/)
then
    echo OK
else
    echo FAIL
fi

那个工程<(curl ...) (过程替代)将被视为grep文件。curl可以选择-s静默以避免传输进度。grep可以选择-qc抑制输出并计算匹配文本的出现次数。如果结果的一项或多项计数Contact正常(退出代码 0)。

答案2

您可以尝试发出请求,然后检查某些特定内容:

curl_result=$(curl -Is https://www.yoururl.com)

if  echo "$curl_result" | grep  "some_text_generated_by_JBOSS"; then
  echo "Server ok" 
fi

相关内容