리눅스 logrotate 장점 및 단점
리눅스에서 웹호스팅을 운영하다 보면 /var/log/httpd 에 엄청난 로그들이 쌓인다.
에러라도 발생한 경우엔 더욱 더 심하게 쌓이는데 계속 쌓이다 보면 하드 디스크 용량이 꽉 차서 서버가 느려질 수 있다.
/var 디렉토리만 파티션을 따로 잡아서 다른 서비스에는 지장이 안 생기게도 할 수 있겠지만,
이럴때 logrotate 를 활용하면 cron 에 의해 하루에 한번씩 로그들을 정리해서 하드 공간을 확보해 줄 수가 있다.
그런데 다운로드를 서비스 하는 웹호스팅을 운영 중이라면 logrotate 가 실행되면 그 타이밍에 다운로드 받다가 도중에 끊어지는 경우가 발생한다.
이유는 logrotate 가 실행되고 난 뒤에 아파치를 reload 하기 때문인데 이를 graceful 로 바꿔도 마찬가지다.
/etc/logrotate.d/httpd 파일의 내용을 보면
/var/log/httpd/*log {
missingok
#notifempty
daily
sharedscripts
#delaycompress
compress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
rotate 7
}
systemctl reload httpd.service 가 있어서 아파치가 reload 된다.
물론 새벽에 조용한 시간대에 사용자가 없는 경우라면 아무런 문제가 되지 않겠지만 혹시나 사용자가 있다면 다운로드 되다가 파일이 뚝 끊어져 다운로드가 종료가 되어 버린다. ( ps : CentOS 7.x 버전은 이상이 없음을 확인하였다. 아파치 2.2.x 버전대가 문제가 있는 걸까? )
이런 경우를 피할려면 /etc/logrotate.d/httpd 파일을 지우고 쉘스크립트를 따로 만들어주면 된다.
조금 귀찮긴 하지만 말이다.
'LINUX' 카테고리의 다른 글
CentOS 7.x 아파치 모듈 컴파일 에러시 (0) | 2016.04.15 |
---|---|
리눅스 인터넷 속도 테스트 팁 (0) | 2016.04.14 |
리눅스 좀비 프로세스 죽이기 (0) | 2016.04.12 |
아파치 로그에 ::1 안 쌓이게 하는 방법 (0) | 2016.04.11 |
MySQL Too many open files 에러 처리 방법 (0) | 2016.04.11 |