Ş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/logrotateunix 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/.confaş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/logrotateiçin rooto 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 deployersymlinked olan dosyamı (sahip olunan ) kullanmayı reddetmek /etc/logrotate.dbir 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 )