
누군가 나에게 빛을 비춰주고 올바른 방향을 알려줄 수 있나요?
Tomcat 앱을 시작하는 동안 로그에서 예외를 확인하는 스크립트를 bash에서 만들고 싶습니다. 이 스크립트는 아마도 inotify
.
Exception:
이 스크립트는 로그 파일의 새 줄이 있는지 로그 디렉터리를 지속적으로 확인하고 or ERROR
라는 단어가 포함된 줄을 작성해야 합니다 /var/log/errorcheckernotifier.txt
.
스크립트가 이 줄을 감지하면 시작 중에 감지된 예외 수와 기록 INFO: Server startup in
해야 합니다 .TOMCAT IS STARTED
/var/log/errorcheckernotifier.txt
이 스크립트는 errorcheckernotifier.txt
. 대신 추가하세요.
이 스크립트를 계속 실행하고 추가 시작을 감지하고 예외를 계산하는 방법 등을 어떻게 할 수 있습니까?
답변1
도움이 된다면 Tomcat 초기화 스크립트의 "시작" 부분을 알려드릴 수 있습니다.
시작) echo -n "$FOO_BASE_JM 시작 중" ## startproc(8)로 데몬을 시작합니다. 이것이 실패하면 ## 반환 값은 startproc에 의해 적절하게 설정됩니다. ps -efwwwwwwwwwwwwww | grep 자바 | grep -q "$FOO_BASE_JM"; 그 다음에 echo "$FOO_BASE_JM 프로세스가 이미 존재합니다." rc_실패 1 또 다른 LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l) CATALINA_OPTS 내보내기 ########/sbin/startproc $FOO_BIN if [ "$(id -un)" = "tomcat" ]; 그 다음에 $FOO_BIN 시작 || rc_실패 1 또 다른 /bin/su tomcat $FOO_BIN 시작 || rc_실패 1 fi echo -n "프로세스가 나타날 때까지 기다리는 중입니다." 중량=0 process_seen=true 하는 동안 ! ps -efwwwwwwwwwwwwwwwww | grep 자바 | grep -q "$FOO_BASE_JM"; 하다 수면 2 에코 -n . 중량=$(($wt+1)) if [ "$wt" -gt 30 ]; 그 다음에 에코 echo "시간 초과: 프로세스를 볼 수 없습니다. 로그를 확인해야 합니다." rc_실패 1 process_seen=false 부서지다 fi 완료 if [ "x$process_seen" = "xtrue" ]; 그 다음에 에코 echo -n "시작을 기다리는 중입니다." 중량=0 하는 동안 ! tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "정보: 서버 시작"; 하다 수면 2 에코 -n . 중량=$(($wt+1)) if [ "$wt" -gt 30 ]; 그 다음에 에코 echo "시간 초과: 로그에서 성공적인 서버 시작에 대한 징후를 찾을 수 없습니다. 확인하십시오." rc_실패 1 부서지다 fi 완료 tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: 서버 시작" && tail +$LOGLINES /opt/$FO O_BASE_JM/logs/catalina.out | grep "정보: 서버 시작" fi fi # 프로세스가 존재하지 않는 경우 # 상태를 기억하고 장황하게 표현하세요 rc_status -v ;;
대안으로 Nagios와 같은 모니터링 도구를 사용하여 catalina.out 파일(또는 로그인 중인 모든 위치)에서 로그 모니터링 플러그인 중 하나를 가리키고 새로운 오류 문자열이나 관심 있는 항목을 검색할 수 있습니다. 완벽하게 작동하는 Oracle DB에서.