apache httpd를 apachctl -k start 명령어로 실행하면, 다음과 같이 rotatelogs 플래그가 붙어서 실행되는 것을 확인할 수 있다.
rotatelogs는 apache httpd 패키지에 포함되어 있는 logrotate 바이너리인데, 문제는 이 녀석이 자동으로 삭제는 지원을 안 하는 듯 하다. (아니 이걸 왜 안함? ㅡㅡ)
그래서 간혹 아파치 웹서버 로그 파일들 때문에 스토리지가 Full 나버려서 장애가 발생하는 경우가 있으니, 아파치 웹서버를 사용하는 환경에서는 반드시 아래 스크립트를 작성하고 crontab을 등록하여 로그가 쌓여 스토리지가 Full 나버리는 상황을 예방해보자.
30일 이상 지난 로그 파일 삭제하는 스크립트 작성 - 'Delete_Log.sh'
#!/bin/sh
# 필자의 경우, httpd 로그 파일이 저장되는 경로가 /etc/apache/logs 라고 가정하였다.
# 필자의 경우, 로그 파일명이 '애플리케이션명_log.날짜' 와 같은 형태임을 유의하자.
# 최근 수정 날짜가 30일 이상인 파일들을 find 하고 해당 파일들에 rm 명령어를 수행한다.
/usr/bin/find /etc/apache/logs/ -name '*log.*' -mtime +30 | xargs -r rm
- xargs -r : 표준 입력이 empty일 경우, 뒤에 오는 command를 수행하지 않도록 하는 옵션
작성한 스크립트 파일의 파일 권한을 실행할 수 있도록 수정 (예시는 root 계정만 수행할 수 있도록 설정)
chmod 744 Delete_Log.sh
작성한 스크립트 파일을 crontab에 등록
crontab에 등록함으로써, OS 상에서 지정한 스케줄에 맞춰 자동으로 해당 스크립트가 수행되도록 설정한다.
# crontab 등록 명령어
crontab -e
# 위 명령어 수행 결과로 나타나는 editor에서 다음 내용을 기입후 저장(:wq)
# '0 0 * * *'은 매일 00시 00분에 해당 명령을 수행한다는 의미
0 0 * * * {Delete_Log.sh 파일 위치}/Delete_Log.sh
# 위 editor를 빠져나온 후에 아래 명령어 수행하여 등록된 crontab 리스트 조회
crontab -l
'Middleware > 웹서버' 카테고리의 다른 글
[httpd] https://{IP} 로 URL을 입력받았을 때, https://{domain name}으로 리다이렉션 시키는 방법 (2) | 2024.04.11 |
---|---|
[httpd] RedHat JBCS httpd 에서 Apache httpd로 이전하기 (1) (0) | 2024.04.07 |
[Nginx] http → https 리다이렉션 및 SSL 인증서 적용 (Nginx ver.1.20.1 기준) (1) | 2023.11.03 |
[IIS] IIS(웹서버) 구축_Windows Server 2019 환경 (0) | 2022.07.22 |
[httpd] Apache httpd Rewrite 모듈 설정 - 페이지 리다이렉션 하기 (0) | 2022.06.10 |
최근댓글