먼저 `rotatelogs`를 활용하기 위해 아래 명령어로 rotatelogs의 위치를 확인하자.
[root@localhost tomcat]# whereis rotatelogs
rotatelogs: /usr/local/apache/bin/rotatelogs
그런 다음.
catalina.sh 파일에 간다.
그리고 대략 478번 Line 쯤에 아래 부분을 주석처리한다.
touch "$CATALINA_OUT"
-> #touch "$CATALINA_OUT"
그리고 내용이 없으면 에러가 나므로,
echo "no touch CATALINA_OUT" 라는 문구라도 찍는다.
그러면 Tomcat 실행 시 해당 문구를 볼 수 있다^^
그리고 아래쪽(대략 500번 Line쯤)으로 좀 내려가다가 보면
echo "Using Security Manager" 아래 부분에
org.apache.catalina.startup.Bootstrap "$@" start \ 가 보이는데 이 부분에
org.apache.catalina.startup.Bootstrap "$@" start 2>&1\ 이렇게 수정을 한다. 백그라운드로 돌아가라~라는 뜻.
그 아래 해당 내용을 추가한다.
| /usr/local/apache/bin/rotatelogs /home/apache_log/tomcat/catalina.%Y-%m-%d.log 86400 540 &
그리고, 해당 라인 아래에
>> "$CATALINA_OUT" 2>&1 "&" 를 주석 처리한다..
#>> "$CATALINA_OUT" 2>&1 "&"
'
510번 Line 쯤에도 마찬가지로 똑같이 해준다.
그러면 총 정리되는 부분은 아래와 같다.
shift
if [ -z "$CATALINA_OUT_CMD" ] ; then
#touch "$CATALINA_OUT"
echo "no touch CATALINA_OUT"
else
if [ ! -e "$CATALINA_OUT" ]; then
if ! mkfifo "$CATALINA_OUT"; then
echo "cannot create named pipe $CATALINA_OUT. Start aborted."
exit 1
fi
elif [ ! -p "$CATALINA_OUT" ]; then
echo "$CATALINA_OUT exists and is not a named pipe. Start aborted."
exit 1
fi
$CATALINA_OUT_CMD <"$CATALINA_OUT" &
fi
if [ "$1" = "-security" ] ; then
if [ $have_tty -eq 1 ]; then
echo "Using Security Manager"
fi
shift
eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Djava.security.manager \
-Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start 2>&1\
| /usr/local/apache/bin/rotatelogs /home/apache_log/tomcat/catalina.%Y-%m-%d.log 86400 540 &
#>> "$CATALINA_OUT" 2>&1 "&"
else
eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
-classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" start 2>&1\
| /usr/local/apache/bin/rotatelogs /home/apache_log/tomcat/catalina.%Y-%m-%d.log 86400 540 &
#>> "$CATALINA_OUT" 2>&1 "&"
fi
자 이대로 실행하면 될까?
`logging.properties`에 의해 제대로 기록되지가 않는다.
그러면 logging.properties파일의 이름을 변경해줘서 기능을 못하도록 막으면 된다.
logging.properties -> logging.properties_bak
자 이 설정까지 끝났으면 tomcat을 재기동해준다.
그러면 이제 더이상 catalina.out을 생성하지 않고 날짜별 로그에 바로바로 기록된다.
카타리나 Ban
'Server' 카테고리의 다른 글
간단히 Server의 CPU, Memory, Disk 사용량(Usage)을 체크하기 (Suictl을 활용한 서버 사용율 체크) (1) | 2024.12.02 |
---|---|
netstat을 활용하여 Recv-Q, Send-Q의 총 크기를 확인하는 명령어 (0) | 2024.10.21 |
GitLab CI/CD 설정 (Gitlab Runners) (0) | 2024.07.18 |
ca-certificates를 설치하였지만, update-ca-certificates command not found 가 발생하는 경우.. (1) | 2024.07.17 |
image file 속에 web shell (웹쉘) 찾기. (0) | 2023.11.19 |
댓글