우리는 현재 루비 온 레일즈 애플리케이션 서버에서 우분투 12.04 LTS에서 14.04 LTS로 업그레이드하고 있으며 로그 파일이 더 이상 회전하지 않는 것을 발견했습니다.
두 머신 모두 다음과 같이 유효한 logrotate 파일을 포함하는 /var/app-name/config/logrotate
유닉스 사용자 deployer
가 소유 한 파일이 있습니다.
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
그런 다음 /etc/logrotate.d/
디렉토리로 심볼릭 링크 됩니다app-name
우리의 우분투 12.04 서버에는 3.7.8의 로그 로테이션이 있습니다. var/app-name/log/
디렉토리 로 이동하여 모든 로그 파일을 회전시킵니다.
그러나 Ubuntu 14.04 서버에는 응용 프로그램의 로그 파일을 회전시키지 않는 3.8.7의 logrotate가 있습니다.
내가 이것을 통해 디버깅 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 배포 프레임 워크에 의해 생성되었으므로 제대로 작동하는 데 소유권을 변경하지 않아도됩니다.
그래서 symlinked 설정 파일은 logrotate에 의해 권장 / 지원됩니까?
그렇다면 디렉토리에 deployer
링크 된 내 파일 (소유자 ) 을 사용하는 것을 거부해야 /etc/logrotate.d
합니까? 버그로 보입니까?
또는 응용 프로그램 별 로그 회전에 대해 권장되는 다른 방법이 있습니까?
( 유닉스 StackExchange 에도 요청 )