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 可接多個參數(shù)、q 代表檢測到字符串則退出、100 200 代表q退出時的狀態(tài)碼。
可以用 echo $? 打印查詢狀態(tài)碼。 將 $?賦予 LOG_STATUS攀唯,使用一個if elif進行條件判斷。
exit 1則代表異常退出媚朦。