원인 1


/tmp 가 noexec로 마운트 되어있을때 /tmp 에서 스크립트가 실행이 되지 않아 logrotate 되지 않는다.


다음과 같이 logrotate 스크립트 파일을 수정해서 해결



vi /etc/cron.daily/logrotate


#!/bin/sh
TMPDIR=/var/tmp   #임시 디렉토리를 /tmp가 아닌 /var/tmp로 한다.
export TMPDIR
/usr/sbin/logrotate /etc/logrotate.conf
TMPDIR=/tmp        #/tmp로 원복
export TMPDIR

EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

원인 2


/tmp 디렉토리가 noexec로 마운트 되어있고 /var/tmp 디렉토리 또한 /tmp로 링크가 걸려있을 경우


다음과 같이 logrotate 스크립트 파일을 수정해서 해결


vi /etc/cron.daily/logrotate


#!/bin/sh


service syslog stop


/usr/sbin/logrotate -f etc/logrotate.conf

EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
service syslog start
exit 0



또는 crontab에 다음을 추가하여 주기적으로 syslog restart


01 4 * * * /etc/init.d/syslog restart

syslog logrotate 안되는 현상 원인과 대처방법

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다