현재 Ruby on Rails 애플리케이션 서버에서 Ubuntu 12.04 LTS를 14.04 LTS로 업그레이드하고 있으며 로그 파일이 더 이상 순환되지 않는 것을 확인했습니다.
/var/app-name/config/logrotate
deployer
두 시스템 모두에는 다음과 같은 유효한 logrotate 파일을 포함하는 unix 사용자 소유의 파일이 있습니다 .
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
/etc/logrotate.d/
그런 다음 다음과 같이 디렉토리 에 심볼릭 링크하십시오 .app-name
Ubuntu 12.04 서버에는 logrotate 3.7.8이 있으며 훌륭하게 작동합니다. var/app-name/log/
디렉토리 로 이동하여 모든 로그 파일을 회전합니다.
그러나 Ubuntu 14.04 서버에는 logrotate 3.8.7이 있으며 애플리케이션의 로그 파일을 회전하지 않습니다.
디버깅을 하면 sudo logrotate -d -f /etc/logrotate/.conf
다음과 같은 결과가 나타납니다.
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
코드에서 이를 추적해 보면 이 변경 사항이 3.8.x 릴리스 스트림에 추가된 것 같습니다.https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
/var/app-name/config/logrotate
심볼릭 링크가 있는 파일의 소유권을 변경하면 root
다시 작동하기 시작합니다. 하지만 이 파일이 내 애플리케이션의 일부이고 이 상태에서 사용하는 capistrano 배포 프레임워크에 의해 생성되었다는 점을 고려하면 과거에 제대로 작동했던 소유권을 변경할 필요는 없습니다.
그렇다면 logrotate는 심볼릭 링크 구성 파일을 권장/지원합니까?
그렇다면 (소유한) 디렉터리에 있는 내 파일 deployer
에 대한 심볼릭 링크 사용을 거부하고 오류로 간주해야 합니까?/etc/logrotate.d
아니면 애플리케이션별 로그 회전을 수행하는 또 다른 권장 방법이 있습니까?
(또한 질문슈퍼유저 StackExchange)