Şu anda Ubuntu 12.04 LTS'den ruby on rails uygulama sunucularımızda 14.04 LTS'ye yükseltiyoruz ve günlük dosyalarının artık dönmediğini fark ettik.
Her iki makinede de , aşağıdaki gibi geçerli bir logrotate dosyası içeren /var/app-name/config/logrotate
unix kullanıcısına ait bir dosya var deployer
:
/var/app-name/log/*.log {
daily
rotate 365
delaycompress
compress
dateext
dateformat -%Y%m%d
missingok
copytruncate
}
Bu daha sonra /etc/logrotate.d/
dizine şu şekilde bağlanır:app-name
Ubuntu 12.04 sunucumuzda gayet iyi çalışan 3.7.8 logrotate var. var/app-name/log/
Dizine gider ve tüm günlük dosyalarını döndürür
Ancak Ubuntu 14.04 sunucusunda, uygulama için günlük dosyalarını döndürmeyen 3.8.7 logrotate var.
Bu hata ayıklama zaman sudo logrotate -d -f /etc/logrotate/.conf
aşağıdaki çıktıyı alıyorum:
Ignoring /etc/logrotate.d/app-name because the file owner is wrong (should be root).
Bunu kodda takip ederek, bu değişiklik 3.8.x yayın akışı için eklendi gibi görünüyor: https://github.com/demands/logrotate/commit/b8ce386a969c60e5c8ee78023c24a1ba0aab1526
Şunu değiştirirsem dosyanın sahipliğini sembolik olarak /var/app-name/config/logrotate
için root
o zaman yeniden çalışmaya başlar. Ama bu dosya benim uygulamamın bir parçası olduğu ve bu durumda kullandığımız capistrano dağıtım çerçevesi tarafından oluşturulan göz önüne alındığında, iyi çalışır eskiden sahipliğini değiştirmek zorunda kalmazdım.
Symlinked yapılandırma dosyaları logrotate tarafından öneriliyor / destekleniyor mu?
Ve eğer öyleyse, dizine deployer
symlinked olan dosyamı (sahip olunan ) kullanmayı reddetmek /etc/logrotate.d
bir hata olarak görülmeli mi?
Veya uygulamaya özgü günlük döndürme için önerilen başka bir yaklaşım var mı?
( unix StackExchange'te de sorulmuştur )