У меня есть программа Linux, которая может записать информацию в stdout и stderr.
У меня есть сценарий оболочки, который перенаправляет тот вывод в файл в /var/log
. (Через >>
и 2>&1
.)
Существует ли способ заставить тот файл журнала вращаться? (макс. размер, затем переключитесь на другой файл, сохраните только ограниченное количество файлов),
Я видел несколько ответов, которые говорят о logrotate
программа, которая звучит хорошей, но они также, кажется, фокусируются на программах, которые генерируют файлы журнала внутренне и обрабатывают Сигналы HUP. Существует ли способ сделать эту работу с основным сценарием перенаправления вывода?
Как альтернатива, Вы могли передать вывод по каналу через инструменты, разработанные с основной целью ограниченного размером поддержания, автоматически повернутого, наборы файла журнала, такие как:
multilog
от daemontoolsmultilog
от daemontools-вызова-на-бисs6-log
от s6svlogd
от runittinylog
от perpcyclog
от едыИнструменты, чтобы затем обработать multilog
- наборы файла журнала формата включают среди других:
multilog-watch
Russ Allberylogrange
multilog-stamptail
follow-log-directories
от едыexport-to-rsyslog
от едыlogrotate
или newsyslog
в этом веке.. Часто, Учитывая Ответы.Если у Вас может быть он, переходят к одному из стандартных потоков журнала (системный журнал, демон, крон, пользователь, безопасность, почта, и т.д.) можно использовать logger
команда и канал к нему вместо этого.
echo "Hello." | logger -p daemon.info
Иначе можно быть более обеспеченной передачей по каналу зарегистрированного содержания к пользовательской программе или сценарию для обработки его, или взгляд на установку logrotate
конфигурация.
Править: Ответ JdeBP, кажется, имеет то, что можно искать.