Almalinux 9.x minimal에서 logrotate가 안되는 문제
2024. 7. 4. 16:12ㆍ개발 이야기
사실 잘 작동하는지 확인 안했다. 실패하면 글 삭 ㄱ
문제
Almalinux 8.7에서는 logrotate가 잘 됐는데 9.3으로 업데이트를 한 뒤로 안되기 시작했다.
Nginx, 앱 로그 용량이 늘어나면 시스템에 좋지 않기때문에 조치를 취해보자.
(Docker에서 실행하는 컨테이기때문에 서비스 재 배포를 통해 해결할 수 있지만..)
아마도 RHEL계열 9.x minimal 버젼에서는 거의 대부분 발생할 문제라고 생각한다.
해결
온갖 삽질을 다 했는데.. 무슨 이유 때문인지 9.x에서 /etc/cron.daily/logrotate
스크립트가 누락되어있다. (5252 어디까지 minimal 할 셈이냐?!)
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit $EXITVALUE
위 스크립트 내용을을 /etc/cron.daily/logrotate
파일에 넣어주고 실행 권한($ chmod +x /etc/cron.daily/logrotate
)을 주면된다. 내부적으로 anacron에서 run-parts를 통해 실행하기때문에 실행 권한이 꼭 있어야 되는것 같다.
만약 Dockerfile을 이용한다면 아래 명령어를 추가한다.
RUN echo $'#!/bin/sh\n\
/usr/sbin/logrotate /etc/logrotate.conf\n\
EXITVALUE=$?\n\
if [ $EXITVALUE != 0 ]; then\n\
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"\n\
fi\n\
exit $EXITVALUE' > /etc/cron.daily/logrotate
RUN chmod 755 /etc/cron.daily/logrotate
'개발 이야기' 카테고리의 다른 글
Next.js 서버 실행시 host가 private ip로 bind되는 경우 (1) | 2024.06.27 |
---|---|
광명찾는 Intellij vmoption 설정 값 (2) | 2024.06.24 |
SpringBatch에서 @EnableBatchProcessing때문에 Job이 실행되지 않는 문제 (2) | 2023.06.01 |
Spring Boot 2.x에서 3.x로 업데이트 (0) | 2023.04.04 |
(React) proxy기반의 반응형데이터 관리 (0) | 2022.07.08 |