Chúng tôi hiện đang nâng cấp từ Ubuntu 12.04 LTS lên 14.04 LTS trên máy chủ ứng dụng ruby trên đường ray và nhận thấy rằng các tệp nhật ký không còn quay.
Trên cả hai máy, chúng tôi có một tệp /var/app-name/config/logrotate
thuộc sở hữu của người dùng unix deployer
chứa tệp logrotate hợp lệ như sau:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Điều này sau đó được liên kết vào /etc/logrotate.d/
thư mục nhưapp-name
Trên máy chủ Ubuntu 12.04 của chúng tôi, chúng tôi có logrotate 3.7.8 chạy tốt. Nó đi vào var/app-name/log/
thư mục và xoay tất cả các tệp nhật ký
Nhưng trên máy chủ Ubuntu 14.04, chúng tôi có logrotate 3.8.7 không quay các logfiles cho ứng dụng của chúng tôi.
Khi tôi gỡ lỗi này thông qua sudo logrotate -d -f /etc/logrotate/.conf
tôi nhận được đầu ra sau:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Theo đuổi mã này, có vẻ như thay đổi này đã được thêm vào luồng phát hành 3.8.x: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Nếu tôi thay đổi quyền sở hữu của tệp được liên kết /var/app-name/config/logrotate
với nhau root
thì nó sẽ bắt đầu hoạt động trở lại. Nhưng với tệp này là một phần của ứng dụng của tôi và được tạo bởi khung triển khai capistrano mà chúng tôi sử dụng ở trạng thái này, tôi không phải thay đổi quyền sở hữu, khi nó được sử dụng để hoạt động tốt.
Vì vậy, các tập tin cấu hình symlinked được đề xuất / hỗ trợ bởi logrotate?
Và nếu vậy, có nên từ chối sử dụng tệp của tôi (thuộc sở hữu deployer
) được liên kết vào /etc/logrotate.d
thư mục, có bị coi là một lỗi không?
Hoặc có một cách tiếp cận được đề xuất cho xoay vòng nhật ký dành riêng cho ứng dụng?
(cũng được hỏi trên unix StackExchange )