4

JBoss 7.1.3. 최종입니다. CLI 도구를 사용하여 배포 할 때 배포가 실패한 로그에서 발생한 예외도 출력 할 수 있습니까? 자동 야간 배포를 실행하고 사람들에게 컴퓨터에 로그인하고 서버 로그를 통과하도록 강제하는 대신 전자 메일로 예외를보고 할 수 있기를 바랍니다. 내가 지금까지 뭘하는지 다음은 commond 줄에 지금보고JBoss CLI 도구를 사용하여 배포가 실패한 예외를보고 할 수 있습니까?

{"JBAS014653: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"JBAS014671: Failed services" => {"jboss.web.deployment.default-host./my" => "org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./my: JBAS018040: Failed to start context"},"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"my.war\".jboss.security.jacc Missing[JBAS014861: <one or more transitive dependencies>]"]}}} 
입니다 무엇
$ $JBOSS_HOME/bin/jboss-cli.sh --file=/tmp/my.cli 

가있는 "my.cli"의 내용 그러나

connect 
deploy --force /tmp/my.war 

입니다 ...입니다

답변

0

Jboss (herehere)와 함께 메일 서비스를 사용할 수 있지만 어떻게 jboss-cli에서 통합 될 수 있는지 알 수 없습니다. 그래서 내 선호는 당신의 책임을 가지고 메일을 보낼 것입니다!

나는 당신의 jbosslinux 서버에서 실행되고있는 가정입니다 : (이 중 하나를 반환하는 경우)

전개 명령을 실행

는, 쉘 변수에 출력을. 예를 들면 :

deploy_response = $($JBOSS_HOME/bin/jboss-cli.sh --file=/tmp/my.cli) 

또는 로그를 로그 파일에 기록되어있는 경우, 다음 변수에 (당신이 오류가 발생할 때 기록되는 얼마나 많은 라인 일반적으로 알고있는) 마지막 몇 줄을 읽어 보시기 바랍니다.

## readling last 3 lines and joining them into one line 
deploy_response = $(tail -n3 /your/log/file.log | tr "\\n" " ") 

이제 배포 요구 사항을 해결할 수 있습니다. 오류 메시지가 있는지 확인하십시오. 일반적으로 Jboss 오류는이 형식 인 JBASxxxxxx에 사용됩니다. 그래서 이것은 jboss 에러를 탐지하는 데 유용 할 것입니다.

## if [[ $deploy_response == *Composite operation failed* ]] 
if [[ $deploy_response =~ JBAS\d\d\d\d\d\d ]] 
then 
    ## assuming you have send mail is configured. 
    echo $deploy_response | mail -s "jboss deployment error" [email protected] 
fi 
+0

로그 파일에서 줄을 가져 오는 것과 관련하여 마지막 3 줄을 가져 오지 않습니다. 경우에 따라 배포가 실패하는 오류가 마지막 3 줄 이상이되는 경우가 있습니다. – Dave

+0

귀하의 의견이 있습니다. 이 경우 로그 파일을 회전 할 수 있습니다. 즉, 배포를 실행 한 다음 오래된 로그를 아카이브로 이동하고 매번 새로운 로그 파일을 생성한다는 의미입니다. 그런 다음 오류 메시지 ('cat file.log')에 대한 전체 파일을 읽으십시오. –

+0

이 모든 것을 자동화하려고하기 때문에 잠재적으로 멀티 기가 바이트 파일을 읽는 것이 옵션이 아닙니다. 나는 CLI 도구에서 오류를 일으킨 오류 메시지를 얻을 수 있는지 여부에 대해 궁금해하며 그렇지 않은 경우 다른 자동 방법으로 문제를 파악할 수 있는지 궁금합니다. – Dave

0

Maven Wildfly Deployment을 사용하면 오류가 로그에 출력됩니다. 그런 다음 CI 도구로 오류 로그를 이메일로 보내면됩니다.

관련 문제