The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"? logrotate и многоюзеров"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"? logrotate и многоюзеров"  
Сообщение от pie (ok) on 08-Ноя-08, 19:08 
подскажите, как красиво заставить logrotate жать и удалять логи (штуки 4 чтобы оставлял, а остальные старые стер), если на компе заведено много аккаунтов для юзеров, логи апача которых лежат в /var/log/apache2  в таком виде (к пр.):
vasya-access.log
vasya-error.log
sanya-access.log
sanya-error.log
а таких ребят штук 30-40, и на каждого скопилось по 52 лога :\
у кого какие решения имеются?
заранее благодарю.
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "? logrotate и многоюзеров"  
Сообщение от Pahanivo email(??) on 08-Ноя-08, 22:14 
у меня есть самописный скрипт который автоматом находит все настройки логов в конфиге и затем делает ротейт по принципу:

(как описано в мануале)
mv access.log access.0.log
mv access.0.log access.1.log
.. и тд с заданной глубиной
после того как проходят все замещения - делается apachectl graceful
затем пакуются все отротейченые новые логи

если до понедельника потерпишь могу дать

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "? logrotate и многоюзеров"  
Сообщение от pie (ok) on 09-Ноя-08, 14:09 
>если до понедельника потерпишь могу дать
>

конечно подожду.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "? logrotate и многоюзеров"  
Сообщение от Pahanivo email(ok) on 10-Ноя-08, 08:40 
http://web.inets.ru/pahanivo/atools.rar

писал для себя - вроде все отладил и докрутил, глюков не наблюдалось
1) настрой $apache_bin
2) потом прогони скрипт с опцией --configview - он просто покажет тебе полный конфиг файл,
   если этого не произошло - то не сработала автоконфигурация, надо настроить опции
   $apache_root
   $apache_config
   $apache_pidfilу
3) после того как все отработает - можно приступать к процессу ротации
   сначала запускаем с опцией
   --prerotator - это режим подготовки - скрипт анализирует конфигу на предмет  
   имеющихся лог файлов в ней, так как конфига может быть большая и логов много, это
   специально делается отдельно так акак может занять много времени
   после выполнения скрипта если все прошло гладко должен появится файл указанный в опции
   $rotator_config - он содержит список всех лог файлов найденных в конфиге.
   Если он появился - значит все в норме. Можно запускать с опцией --runrotator.
   Эта опция непосредственно осуществляет ротацию и упаковку (аля newsyslog).
4) Все )
   Рекомендую запускать как описано в хелпе скрипта
   # 45 23 *  *  * root /path/atools.pl --prerotator >> /path/my_log
   # 0  0  *  *  * root /path/atools.pl --runrotator >> /path/my_log
   пускать из под рута
5) Можешь не фолноваться - скрипт ничего не пишет в конфигу - использует ее только для
   чтения.
  

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "? logrotate и многоюзеров"  
Сообщение от pie (ok) on 10-Ноя-08, 20:39 
>http://web.inets.ru/pahanivo/atools.rar
>

благодарю. до ужина доберусь и поковыряю ваш скриптик. :)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "logrotate и 1unixway"  
Сообщение от Andrey Mitrofanov on 09-Ноя-08, 17:26 
>у меня есть самописный скрипт который автоматом находит все настройки логов в
>конфиге и затем делает ротейт по принципу:
>mv access.log access.0.log
>mv access.0.log access.1.log
>.. и тд с заданной глубиной

%) В _таком_ порядке останется _1_ access.$LOGS_MAX.log ?

>после того как проходят все замещения - делается apachectl graceful
>затем пакуются все отротейченые новые логи

Эта часть и предыдущая уже были реализованы в обычном logrotate, как мне кажется...
"Своим скриптом" не проще было генерировать соотв.часть конфигурации logrotate (про {vasya,petya}-access.log) и пускать его с обновлённой конфигурацией?..

>если до понедельника потерпишь могу дать

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "logrotate и 1unixway"  
Сообщение от Pahanivo email(ok) on 10-Ноя-08, 08:20 
>Эта часть и предыдущая уже были реализованы в обычном logrotate, как мне
>кажется...
>"Своим скриптом" не проще было генерировать соотв.часть конфигурации logrotate (про {vasya,petya}-access.log) и
>пускать его с обновлённой конфигурацией?..

когда я бодался с этим родным логротейтом у него было пура косяков - во первых он висит отдельным процессом для каждого лог файла и второй неприятный косяк в том, что он не создает файл до тех пор пока сервак чтонибудь не выплюнул в stdout, те если обращений к серваку небыло за период ротации файла то и файла не будет

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "logrotate и 1unixway"  
Сообщение от geekkoo (??) on 10-Ноя-08, 08:57 
>[оверквотинг удален]
>>кажется...
>>"Своим скриптом" не проще было генерировать соотв.часть конфигурации logrotate (про {vasya,petya}-access.log) и
>>пускать его с обновлённой конфигурацией?..
>
>когда я бодался с этим родным логротейтом у него было пура косяков
>- во первых он висит отдельным процессом для каждого лог файла
>и второй неприятный косяк в том, что он не создает файл
>до тех пор пока сервак чтонибудь не выплюнул в stdout, те
>если обращений к серваку небыло за период ротации файла то и
>файла не будет

В шлакваре имеется файл /etc/logrotate.d/httpd с таким вот содержимым:

/var/log/httpd/*_log {
  rotate 10
  notifempty
  size=5M
  compress
  delaycompress
  sharedscripts
  postrotate
    /etc/rc.d/rc.httpd restart
  endscript
}

По-моему это решает все проблемы с ротацией файлов апача.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "logrotate и 1unixway"  
Сообщение от Pahanivo email(ok) on 10-Ноя-08, 09:32 
>[оверквотинг удален]
>  size=5M
>  compress
>  delaycompress
>  sharedscripts
>  postrotate
>    /etc/rc.d/rc.httpd restart
>  endscript
>}
>
>По-моему это решает все проблемы с ротацией файлов апача.

По-моему я уже срузу вижу косяк - то что делается restart вместо graceful

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "logrotate и 1unixway"  
Сообщение от geekkoo (??) on 10-Ноя-08, 09:45 
>[оверквотинг удален]
>>  sharedscripts
>>  postrotate
>>    /etc/rc.d/rc.httpd restart
>>  endscript
>>}
>>
>>По-моему это решает все проблемы с ротацией файлов апача.
>
>По-моему я уже срузу вижу косяк - то что делается restart вместо
>graceful

man apachectl

graceful
              Gracefully  restarts  the  Apache httpd daemon. If the daemon is
              not running, it is started. This differs from a  normal  restart
              in  that  currently  open  connections  are  not aborted. A side
              effect is that old log files will  not  be  closed  immediately.
              This  means that if used in a log rotation script, a substantial
              delay may be necessary to ensure that  the  old  log  files  are
              closed before processing them.

Патрик - бох! ;)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "logrotate и 1unixway"  
Сообщение от Pahanivo email(ok) on 10-Ноя-08, 12:37 
>[оверквотинг удален]
>            
>  This  means that if used in a log
>rotation script, a substantial
>            
>  delay may be necessary to ensure that  the
> old  log  files  are
>            
>  closed before processing them.
>
>Патрик - бох! ;)

   когда я уже осуществил передвижку лог файла типа
   mv access.log access.0.log
   то мне както уже совсем похеру будут ли логи closed immediately или не совсем
   immediately - ЕГО (ЛОГА) УЖЕ ФАКТИЧЕСКИ НЕТ. Мне надо командой рестарта как раз его
   не закрывать, а открыть.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "logrotate и 1gopherway"  
Сообщение от Andrey Mitrofanov on 10-Ноя-08, 12:53 
$>Патрик - б.Лох! ;)
>   immediately - ЕГО (ЛОГА) УЖЕ ФАКТИЧЕСКИ НЕТ. Мне надо

%) "Ты суслика видишь? А он есть."

>командой рестарта как раз его не закрывать, а открыть.

Я где-то слышал, что открытый на запись лог, переименованный командой mv(*), продолжает "пополняться" уже под новым именем (=старым i-нодом) до следующего закрытия-создания-открытия. Впочем, если не смущают последствия упаковки открытого на запись лога (или они "ювелирно" обходятся, например, упаковкой только начиная со второго номера), то разницы никакой....

А ещё что-то мне подсказывает, что раз "надо открыть" новый лог, старый, наверное, придётся закрыть... Интуиция, наверное, чутьё.

(*)Тут в форуме периодически обсуждается, как _удалённые_, но не закрытые файлы продолжают занимать место на диске...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "logrotate и 1gopherway"  
Сообщение от Pahanivo email(ok) on 10-Ноя-08, 13:36 
я эту тему проверял - после команды mv ниче не пишется (freebsd, apache 1,2)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру