Поворот вывода nohup

3

Я работаю с weblogic 10.3.5 под ubuntu 12.04.

Weblogic запускается с использованием

nohup ./startWebLogic.sh >Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.out 2>&1 </dev/null &

Он работает нормально, и теперь я хочу повернуть AdminServer.out , используя logrotate , но, похоже, сделать это не так-то просто. Поиск в Интернете не очень понятно, если это возможно или нет.

Я попытался использовать опции copytruncate . Когда logrotate выполняет размер файла, он становится 0, но возвращается к исходному размеру после первой «записи» сервера.

Также попытался переименовать файл. Сервер все еще записывает в переименованный файл.

Кажется, сервер имеет указатель на файл независимо от его имени или размера.

Итак ... есть ли решение? Использование логротата или нет.

- EDIT -

Я также пробовал с помощью

#!/bin/bash
mkdir -p tmp
if [ ! -p tmp/weblogic.fifo ]; then
    mkfifo tmp/weblogic.fifo
fi
tail -f tmp/weblogic.fifo >> Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/logs/AdminServer.out &
nohup ./startWebLogic.sh > /home/me/tmp/weblogic.fifo 2>&1 </dev/null &

Я не знаю, правильно ли это, но ... есть хотя бы одна проблема: иногда она вешает запись в файл. Иногда несколько секунд, но через некоторое время (даже до запуска сервера) ... неопределенно!

Поэтому я не могу проверить логротат.

    
задан tweetysat 13.05.2015 в 09:00
источник

2 ответа

3

Решение было в конечном итоге настолько простым

nohup ./startWebLogic.sh 2>&1 </dev/null | cat >> AdminServer.out &

, и теперь AdminServer.out можно повернуть с помощью logrotate и опции copytruncate .

    
ответ дан tweetysat 04.06.2015 в 12:23
источник
4

Устранить потребность в logrotate . Во-первых, вам не нужно logrotate . Это проблема, которая была решена с середины 1990-х годов.

Получить один или несколько из следующих элементов:

и отправьте стандартный вывод сценария и стандартную ошибку через трубу на их стандартный ввод, обычным способом:

./startWebLogic.sh 2>&1 | cyclog logs/

Они будут записывать набор автоматически циклических, вращающихся по требованию, строго ограниченных размерами журналов в указанном вами каталоге, без каких-либо дополнительных программ для создания журналов. Никому из них не нужны привилегии суперпользователя. (На самом деле, далекие от необходимости или ожидания привилегий суперпользователя , лучше всего использовать в своем наиболее широко известном прецеденте, записывая вывод dæmon, чтобы запускать их под непривилегированными учетными записями.)

Дальнейшее чтение

ответ дан JdeBP 13.05.2015 в 11:43