나는 두 개의 다른 (i386 v AMD) 데비안 박스를 가지고 있으며 같은 문제가 있습니다. logrotate는 내 로그를 자동으로 회전시키지 않습니다. 수동으로 강제로 작동하면 제대로 작동합니다.
/usr/sbin/logrotate -f /etc/logrotate.conf
그러나 그것은 나에게 좋지 않습니다.
설정이 수정되지 않았습니다 (적어도 수정하지 않았습니다). AMD 상자는 새로 설치되었지만 아직 작동하지 않습니다.
비슷한 문제가 발견되면 도와주세요.
업데이트 (일부 서버 출력) :
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
답변
crot에 의해 logrotate가 실행되고 있는지 확인하십시오.
편집하다:
주석 토론에서-cron이 올바르게 작동하지 않는 것 같습니다. 사용자없이 crontab에 cronjob이 있었지만 cron 데몬을 다시 시작했을 때만 나타납니다.
내 우분투 및 centos 시스템에는 /etc/cron.daily/logrotate
내용 이있는 파일이 있습니다.
#!/bin/sh
test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf
내 / etc / crontab에는 매일 작업을 실행하는 다음 줄이 있습니다.
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily
답변
나는 비슷한 문제가 있었지만 crontab
작동하고 있었고 일부 로그 디렉토리 logrotate
는 작동했지만 일부는 작동 하지 않았습니다. logrotate를 수동으로 실행하려고 할 때 몇 가지 오류 메시지가 나타납니다.
user@server:/var/log/apache2$ sudo /usr/sbin/logrotate -f /etc/logrotate.conf
error: error creating output file /var/log/apache2/access.log.1.gz: File exists
error: error creating output file /var/log/apache2/error.log.1.gz: File exists
...
모든 *.1.gz
파일의 크기는 0이었습니다. 오류 메시지에 언급 된 모든 파일을 수동으로 삭제하고 sudo /usr/sbin/logrotate -f /etc/logrotate.conf
다시 실행 한 후 작동했습니다.
이 대체 솔루션을 여기에서도 공유해야하지만 문제를 검색 할 때 나에게 처음으로 나타난 검색 결과 였지만 제안 된 솔루션이 효과가 없었기 때문입니다. 어쩌면 이것은 나와 같은 상황에 처한 다른 사람들에게도 도움이 될 것입니다.
답변
내가 알지. 5 살짜리 실.
검색에서 여전히 여전히 높은 것으로 생각되면, 내가 직면 한 문제에 대한 해결책을 제시하고 제공 할 것입니다. 내 서버 중 하나에서 로그 로테이션 작업이 자동으로 처리되지 않았습니다. 회전 강제로 잘 작동했습니다. 일일 회전 명령을 수동으로 실행 한 후 해결책을 찾았습니다.
( cd / && run-parts --report /etc/cron.daily )
그런 다음 logrorate 작업이 시작되지 않는 오류를 보았습니다.
/etc/cron.daily/logrotate:
error: iptraf-ng:2 duplicate log entry for /var/log/iptraf/*.log
예, 그렇게 간단합니다. 회전 할 동일한 로그를 정의하는 두 개의 파일 (iptraf 및 iptraf-ng)이 있습니다. iptraf에 대해 상충되는 logrotate 정의 중 하나를 제거하는 것이 트릭이었습니다.
rm /etc/logrotate.d/iptraf
다른 문제는 botched / etc / crontab 파일 일 수 있습니다. 구문이 잘못된 경우 찾을 수있는 출력을 제공하지 않으므로 해당 파일의 구문을 이중 또는 삼중으로 확인하십시오. 구문 유효성 검사에 실패한 후 자동으로 종료됩니다.
이것이 누군가를 구하기를 바랍니다.
답변
좋아, 비슷한 문제가 있었다.
“로그가 회전하지 않습니까?” 그러나 logrotate를 수동으로 실행하면 (또는 실행하면 /etc/cron.daily
정상적으로 회전합니다.
따라서 cron은 매일 “실행되고 있지 않습니다”. 이상한. 그래서 cron 이 데이터를 출력 하는 로그 파일을 살펴보고 해당 문제를 해결하기 위해 “인증 토큰이 더 이상 유효하지 않습니다. 새로운 토큰이 필요합니다”를 보았습니다. 여기를 참조 하십시오.
답변
서비스가 변경되고 logrotate에 사용 된 옵션이 수정되어 매일 logrotate가 실패하는 경우가 자주 발생합니다.
아이디어를주기 위해 마지막 수정 사항 은 아파치 logrotate 파일 의 notifyempty 옵션이 더 이상 유효하지 않아서 logrotate가 함께 중지되도록했습니다.
이것에 대해 어느 정도 다루었지만이 문제를 추적 할 때 거쳐야하는 프로세스를 공유하고 싶습니다.
#/usr/sbin/logrotate -f /etc/logrotate.conf
오류를 찾기 위해 시작하여 시작하십시오 (예 : postfix : 3 ‘missingok’). 참조
하는 파일과 줄 번호는 logrotate.d 폴더의 파일입니다.- 문제의 파일 :을 편집하고
# vi /etc/logrotate.d/postfix
문제를 일으키는 옵션을 제거하고 파일을 저장하십시오. - 회전이 작동하는지 또는 다른 문제가 있는지 확인하려면 첫 번째 단계를 반복하십시오.
첫 번째 단계에서 단순히 출력하는 경우가 있지만 문제가 있음을 알고 있습니다. 서비스의 로그 파일이 회전되지 않았기 때문에이 모든 것이 시작되었으므로 로그 회전 프로세스가 특정 서비스를 찾는 과정에서 회전이 중지되는 것을 확인할 수 있습니다. 이를 수행하려면 logrotate 명령에 verbose 태그를 추가하고 해당 폴더에서 어떤 일이 발생하는지 확인하십시오.
답변
충돌하는 로테이션 구성 매개 변수를 점검하십시오 !!
나는이 문제로 어려움을 겪고 마침내 logrotate에 대한 문서를 매우 자세히 읽었으며 여기에서 유용한 문서를 발견 했습니다 .
사실 둘 다 원하지 않을 때 Size 매개 변수와 Rotation Interval 매개 변수를 모두 지정 했습니다. 나는 cron에서 예약되었을 때 회전이 정확히 일어나기를 원했습니다.
- 크기 매개 변수는 회전 간격을 무시합니다. 따라서 내 로그는 회전하기 전에이 매개 변수를 초과해야했습니다. (디스크 사용에 대해 가장 걱정할 때 이것이 어떻게 유용한 지 알 수 있습니다. 그러나 사용하고 싶지는 않습니다.)
- 회전 간격 은 마지막 회전이 발생한시기를 확인하고 다음 회전이 지정된 양만큼 지연되는지 확인합니다. 그러나 그 시간이 언제 발생하는지 제어하는 방법이 확실하지 않습니다.
따라서 회전 간격 및 크기 매개 변수를 제거하십시오 . 그러면 logrotate가 강제로 호출되지 않고 호출 될 때마다 회전이 발생합니다.
편집 : OK 이것도 완전히 작동하지는 않습니다! 로그 파일이 특정 임계 값 미만이면 로그가 회전하지 않습니다. 따라서 2 분마다 회전하는 크론 작업을 실행하면 로그가 회전하지 않았습니다.
실행하면 자세한 디버그 정보를 볼 수 있습니다 logrotate -d
. 이것은 매우 유용한 디버그 정보를 제공합니다.