Я работаю с 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, но возвращается к исходному размеру после первой «записи» сервера.
Также попытался переименовать файл. Сервер все еще пишет в переименованный файл.
Кажется, что сервер имеет только указатель на файл независимо от его имени или размера.
Так ... есть ли решение? Использование логротации или нет.
- РЕДАКТИРОВАТЬ -
Я также пытался с
#!/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 &
Я не знаю, правильно ли это, но ... есть по крайней мере одна проблема: иногда это вешает запись в файл. Иногда несколько секунд, но через некоторое время (даже до запуска сервера) ... бесконечно!
Так что я не могу проверить logrotate.
Решение состояло в конечном счете в том, таким образом, простой
nohup ./startWebLogic.sh 2>&1 </dev/null | cat >> AdminServer.out &
и теперь эти AdminServer.out
может быть повернут с logrotate
и copytruncate
опция.
Забудьте потребность в logrotate
. Вам не нужно logrotate
во-первых. Это - проблема, которая была решена с середины 1990-х.
Вовлеките себя один или несколько из:
multilog
от daemontools или Bruce Guenter multilog
от daemontools-вызова-на-бис, или Adam Sampson multilog
от freedt, илиs6-log
от s6, илиsvlogd
от runit, илиtinylog
от perp, илиcyclog
от еды.и отправьте стандартный вывод сценария и стандартную погрешность через канал к их стандартному входу нормальным способом:
./startWebLogic.sh 2>&1 | cyclog logs/
Они запишут, что ряд автоматически циклически повторенного, rotateable-по-запросу, строго ограниченного размером входит в систему каталог, который Вы указываете без потребности в любых дополнительных программах вращения журнала вообще. Ни одному из них не нужны никакие полномочия суперпользователя. (На самом деле далекий от необходимости или ожидания полномочий суперпользователя это - лучшая практика в их наиболее широко известном варианте использования, регистрируя dæmon вывод, для выполнения их в соответствии с непривилегированными учетными записями.)