Я пытаюсь управлять журналами, которые генерируются локальными скриптами. Эти журналы — не что иное, как stdout и stderr, перенаправленные в локальные файлы. У меня нет прав root, и попытка запустить logrotate как локальный пользователь с локальным файлом конфигурации приводит к ошибке:
Ignoring /home/user/customlogfile because the file owner is wrong (should be root).
Handling 0 logs
Можно ли запустить logrotate от имени локального пользователя?
решение1
Я пытаюсь управлять журналами, которые генерируются локальными скриптами. Эти журналы — не что иное, как stdout и stderr, перенаправленные в локальные файлы.
logrotate
Тогда вам это изначально не нужно .
Приобретите себе один или несколько из следующих вариантов:
- Дэн Бернстайн
multilog
(отDAEMON Tools), или - Брюс Гюнтер
multilog
(отdaemontools-encore), или - Лорана Берко
s6-log
(отс6), или - Геррит Пейп
svlogd
(отзапустить его), или - Уэйн Маршалл
tinylog
(отпреступник), или - Мои
cyclog
изперекус).
и отправить стандартный вывод скрипта и стандартную ошибку через канал на его стандартный ввод, обычным способом.
Они будут записывать набор автоматически цикличных, ротируемых по требованию, строго ограниченных по размеру журналов в указанном вами каталоге, без необходимости в каких-либо дополнительных программах ротации журналов вообще. Ни одному из них не нужны привилегии суперпользователя. (На самом деле, они далеки от необходимости или ожидания привилегий суперпользователяэто лучшая практика(В наиболее известном варианте их использования — протоколирование выходных данных демона для запуска их под непривилегированными учетными записями.)