로그 회전 변경을 적용하는 방법


답변:


139

logrotatecrontab작동 하는 데 사용 합니다. 데몬이 아니라 예약 된 작업이므로 구성을 다시로드 할 필요가 없습니다.
crontab실행 되면 logrotate새 구성 파일이 자동으로 사용됩니다.
구성을 테스트 해야하는 경우 다음 logrotate명령을 사용하여 직접 실행할 수도 있습니다 .

logrotate /etc/logrotate.d/your-logrotate-config

또는 주석에서 언급했듯이 logrotate명령 출력 에서 행을 식별하고 crontab -l명령 행을 실행 하십시오 . 정확한 크론을 갖기 위해 slm의 답변 을 참조하십시오.


1
답변에 추가하기 위해 cron 항목 logrotate은 하루에 한 번 실행되도록 예약되어 있습니다.
mkc

@ Ketan, 그래서 어떻게 바로 영향을 줄 수 있습니까? 감사합니다
BufBills

확실하지 않다. 한 가지 가능성은 crontab에서 해당 항목을 찾아서 crontab -l실행하는 것입니다.
mkc

2
그것을 적용하려면 즉시 cron afterwords를 실행하십시오.
slm

2
logrotate-d테스트 (또는 "디버깅") 옵션 이 있으므로 적어도 한 번 실행하는 것이 좋습니다.
FrustratedWithFormsDesigner

36

logrotate다양한 배포판에서 본 대부분의 설정은에서 부족합니다 /etc/cron.daily. 적절하게 이름이 지정된 쉘 스크립트가 logrotate있습니다.

$ ls -l /etc/cron.daily/logrotate 
-rwxr-xr-x 1 root root 180 May 18  2011 /etc/cron.daily/logrotate

수동 실행

수동으로 실행하려면 루트로 스크립트를 실행하십시오.

$ sudo /etc/cron.daily/logrotate

일반적으로 존재하는 스크립트를 살펴보면 구성 파일의 경로를 +로 logrotate실행하여 수동으로 실행하는 방법도 보여줍니다 logrotate.

#!/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 0

31

cron을 통해 자동이어야합니다. 변경 사항을 테스트하도록 강제 할 수 있습니다.

전역 로그 로테이션의 경우 :

sudo logrotate -v -f /etc/logrotate.conf

단일 conf 파일의 경우 :

sudo logrotate -v -f /etc/logrotate.d/someapp.conf

11
-f강제 회전 -d을 위해서는 디버그가 있으며, 드라 이런도 가능합니다. 실제로 수행 한 것은 아니지만 실제로는 수행하지 않는 모든 것을 인쇄합니다.
ThorSummoner

5

nginx에 대한 logrotate를 설정하기 위해 CentOS 6.5 시스템에서 다음을 수행해야했습니다.

logrotate /etc/logrotate.d/nginx

그런 다음 logginate가 다음과 같이 새로운 nginx 구성을 관리하는지 확인했습니다.

cat /var/lib/logrotate.status
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.