logrotate는 로그를 회전할 수 없습니다.

logrotate는 로그를 회전할 수 없습니다.

logrotate는 내 로그를 회전할 수 없습니다. 파일 권한을 확인했는데 문제가 없습니다.

구성 파일에 "su root root"를 넣으려고 시도했지만 여전히 같은 문제에 직면하고 있습니다.

아래에서 관련 세부정보를 찾아보세요.

logrotate.conf 파일:

/var/log/testlog {
    compress
    delaycompress
     maxage 180
    rotate 15
    size 1024M
    start 1
    rotate 15
    missingok
}

디버그 로그: ["-d 사용]

rotating pattern: /var/log/testlog  1073741824 bytes (15 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/testlog
  log needs rotating
rotating log /var/log/testlog, log->rotateCount is 15
dateext suffix '-20140708'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
compressing log with: /bin/gzip
renaming /var/log/testlog.15.gz to /var/log/testlog.16.gz (rotatecount 15, logstart 1, i 15), 
renaming /var/log/testlog.14.gz to /var/log/testlog.15.gz (rotatecount 15, logstart 1, i 14), 
renaming /var/log/testlog.13.gz to /var/log/testlog.14.gz (rotatecount 15, logstart 1, i 13), 
renaming /var/log/testlog.12.gz to /var/log/testlog.13.gz (rotatecount 15, logstart 1, i 12), 
renaming /var/log/testlog.11.gz to /var/log/testlog.12.gz (rotatecount 15, logstart 1, i 11), 
renaming /var/log/testlog.10.gz to /var/log/testlog.11.gz (rotatecount 15, logstart 1, i 10), 
renaming /var/log/testlog.9.gz to /var/log/testlog.10.gz (rotatecount 15, logstart 1, i 9), 
renaming /var/log/testlog.8.gz to /var/log/testlog.9.gz (rotatecount 15, logstart 1, i 8), 
renaming /var/log/testlog.7.gz to /var/log/testlog.8.gz (rotatecount 15, logstart 1, i 7), 
renaming /var/log/testlog.6.gz to /var/log/testlog.7.gz (rotatecount 15, logstart 1, i 6), 
renaming /var/log/testlog.5.gz to /var/log/testlog.6.gz (rotatecount 15, logstart 1, i 5), 
renaming /var/log/testlog.4.gz to /var/log/testlog.5.gz (rotatecount 15, logstart 1, i 4), 
renaming /var/log/testlog.3.gz to /var/log/testlog.4.gz (rotatecount 15, logstart 1, i 3), 
renaming /var/log/testlog.2.gz to /var/log/testlog.3.gz (rotatecount 15, logstart 1, i 2), 
renaming /var/log/testlog.1.gz to /var/log/testlog.2.gz (rotatecount 15, logstart 1, i 1), 
renaming /var/log/testlog.0.gz to /var/log/testlog.1.gz (rotatecount 15, logstart 1, i 0), 
renaming /var/log/testlog to /var/log/testlog.1
removing old log /var/log/testlog.16.gz
error: error opening /var/log/testlog.16.gz: No such file or directory

자세한 출력:

rotating pattern: /var/log/testlog  1073741824 bytes (15 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/testlog
  log needs rotating
rotating log /var/log/testlog, log->rotateCount is 15
dateext suffix '-20140625'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
compressing log with: /bin/gzip
renaming /var/log/testlog.15.gz to /var/log/testlog.16.gz (rotatecount 15, logstart 1, i 15), 
old log /var/log/testlog.15.gz does not exist
renaming /var/log/testlog.14.gz to /var/log/testlog.15.gz (rotatecount 15, logstart 1, i 14), 
old log /var/log/testlog.14.gz does not exist
renaming /var/log/testlog.13.gz to /var/log/testlog.14.gz (rotatecount 15, logstart 1, i 13), 
old log /var/log/testlog.13.gz does not exist
renaming /var/log/testlog.12.gz to /var/log/testlog.13.gz (rotatecount 15, logstart 1, i 12), 
old log /var/log/testlog.12.gz does not exist
renaming /var/log/testlog.11.gz to /var/log/testlog.12.gz (rotatecount 15, logstart 1, i 11), 
old log /var/log/testlog.11.gz does not exist
renaming /var/log/testlog.10.gz to /var/log/testlog.11.gz (rotatecount 15, logstart 1, i 10), 
old log /var/log/testlog.10.gz does not exist
renaming /var/log/testlog.9.gz to /var/log/testlog.10.gz (rotatecount 15, logstart 1, i 9), 
old log /var/log/testlog.9.gz does not exist
renaming /var/log/testlog.8.gz to /var/log/testlog.9.gz (rotatecount 15, logstart 1, i 8), 
old log /var/log/testlog.8.gz does not exist
renaming /var/log/testlog.7.gz to /var/log/testlog.8.gz (rotatecount 15, logstart 1, i 7), 
old log /var/log/testlog.7.gz does not exist
renaming /var/log/testlog.6.gz to /var/log/testlog.7.gz (rotatecount 15, logstart 1, i 6), 
old log /var/log/testlog.6.gz does not exist
renaming /var/log/testlog.5.gz to /var/log/testlog.6.gz (rotatecount 15, logstart 1, i 5), 
old log /var/log/testlog.5.gz does not exist
renaming /var/log/testlog.4.gz to /var/log/testlog.5.gz (rotatecount 15, logstart 1, i 4), 
old log /var/log/testlog.4.gz does not exist
renaming /var/log/testlog.3.gz to /var/log/testlog.4.gz (rotatecount 15, logstart 1, i 3), 
old log /var/log/testlog.3.gz does not exist
renaming /var/log/testlog.2.gz to /var/log/testlog.3.gz (rotatecount 15, logstart 1, i 2), 
old log /var/log/testlog.2.gz does not exist
renaming /var/log/testlog.1.gz to /var/log/testlog.2.gz (rotatecount 15, logstart 1, i 1), 
renaming /var/log/testlog.0.gz to /var/log/testlog.1.gz (rotatecount 15, logstart 1, i 0), 
old log /var/log/testlog.0.gz does not exist
log /var/log/testlog.16.gz doesn't exist -- won't try to dispose of it
renaming /var/log/testlog to /var/log/testlog.1

ls /var/log/testlog* 출력:

/var/log/testlog  
/var/log/testlog.1  
/var/log/testlog.2.gz

누군가 이 문제를 해결하기 위한 몇 가지 팁을 줄 수 있나요?

감사해요

답변1

나는 여기서 절뚝거리고 있지만 맨페이지에는 다음과 같이 나와 있습니다.

-d, --debug
Turns on debug mode and implies -v. In debug mode, no changes will be made to the logs or to the logrotate state file. 

따라서 logrotate는 아무 것도 하지 않습니다. 단지 내용을 쓸 뿐입니다회의하다. 자세한 출력을 원할 경우 옵션으로 -d 대신 -v를 제공하십시오.

편집하다:실제로 logrotate는 비슷한 메시지를 내보냅니다.

 log /var/log/testlog.16.gz doesn't exist -- won't try to dispose of it

걱정할 것이 없습니다. 실제로 이는 예상된 동작입니다. 자세한 출력은 수행 중인 작업을 정확하게 보여줍니다. 존재하지 않는 가장 오래된 파일 testlog.15.gz부터 버전 번호를 증가시키려고 합니다.하지만. 이는 15번의 회전이 수행된 후에 발생합니다. 이것은 실수가 아닙니다. testlog.1.gz가 끝날 때까지 계속하세요.하다존재하고 testlog.2.gz로 이름이 변경되었습니다.

당신이 지정했기 때문에

start 1 

testlog.0.gz는 다시 존재하지 않습니다. 그러나 testlog가 testlog.1로 이동되었습니다(지연된 압축으로 인해 압축되지 않음).

마지막으로 16번째 로그 파일을 처리하려고 시도합니다.

rotate 15

주어진. 파일이 존재하지 않습니다(다시 말하지만:하지만) 그러나 그것은 귀하나 프로그램에 중요하지 않습니다. 디렉토리 목록은 내가 말한 것과 정확히 일치한다는 것을 보여줍니다. 로그가 계속해서 순환되면서 "누락된" 파일이 나타나고 메시지는 사라질 것입니다.

결국 프로그램을 verbose 모드에서 실행하고 있으므로 이와 같은 출력을 예상해야 합니다.

관련 정보