function getDockerLogs()
{
echo "===采集服务器日志($SERVER_IP)开始==="
#ssh $REMOTE_USER_NAME@$SERVER_IP "exec timeout 70s docker logs --tail 10 -f ${DOCKER_SERVICE_NAME}"
ssh $REMOTE_USER_NAME@$SERVER_IP "timeout 150s docker logs -f ${DOCKER_SERVICE_NAME} | sed -e '/JVM running for/ q 100' -e '/APPLICATION FAILED TO START/ q 200' -e '/Application run failed/ q 200'"
LOG_STATUS=$?
if [[ $LOG_STATUS = 100 ]]
then
echo "服务启动成功"
elif [[ $LOG_STATUS = 200 ]]
then
echo "服务启动失败"
exit 1
fi
echo "===采集服务器日志($SERVER_IP)结束==="
sleep 5
}
使用sed命令,检测到对应字符串则退出。
-e 可接多个参数、q 代表检测到字符串则退出、100 200 代表q退出时的状态码。
可以用 echo $? 打印查询状态码。 将 $?赋予 LOG_STATUS,使用一个if elif进行条件判断。
exit 1则代表异常退出。