У меня есть владелец файла журнала от пользователя 'apache', которого я хотел бы вращать с помощью logrotate.
Я хотел бы сделать это, запустив logrotate от имени другого пользователя, скажем, «web», используя стратегию copytruncate.
Это терпит неудачу с этой ошибкой:
error: error setting owner of ./logfile.log.1: Operation not permitted
Но только потому, что logrotate пытается изменить владельца нового файла на владельца повернутого файла, то есть apache. Но я не беспокоюсь о новых файлах, имеющих одного и того же владельца, если logrotate создаст копии с «web» в качестве владельца, что будет хорошо, и тогда это может работать нормально.
Так есть ли способ остановить logrotate от изменения владельца скопированного файла?
postscript
иchown "$1"
, вероятно, здесь неуместно, потому что это не помешает logrotate не установить владельца.Ответы:
Я использую
create
директиву в моих/etc/logrotate.d/
файлах. Пример:источник
create
вероятно, будет делать то, что вы описываете в последнем предложении вашего вопроса, но этот вариант несовместимcopytruncate
, который вы также хотите использовать.источник
Я решил ту же проблему с опциями postrotate и prerotate:
источник