В настоящее время мы обновляем Ubuntu 12.04 LTS до 14.04 LTS на нашем ruby на серверах приложений rails и заметили, что файлы журнала больше не вращаются.
На обеих машинах у нас есть файл /var/app-name/config/logrotate
принадлежит нашему пользователю Unix deployer
который содержит действительный файл logrotate следующим образом:
/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
каталог, будет рассматриваться как ошибка?
Или есть другой рекомендуемый подход для ротации журнала для конкретного приложения?
(также спросил на Unix StackExchange )