리눅스 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 파일을 지우고 쉘스크립트를 따로 만들어주면 된다.


조금 귀찮긴 하지만 말이다.



블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,