![]() |
WhiteCat LogCleaner 1.0 by ShadOS
Приветствую всех. Вот зарелизил свой логклинер (видимо это традиция для большинства команд, в т.ч. и для HellKnights =)) с поддержкой регулярных выражений. Без тени скромности можно сказать что он один из лучших в своём роде, тем более в природе логклинеров с поддержкой Perl-совместимых регулярных выражений я не видел. Может чистить как бинарные так и текстовые логи. Пользутесь наздоровье. Жду отзывов и пожеланий по развитию проекта.
Скачать можно здесь: http://shados.0x48k.cc/releases/whitecat.c http://hellknights.void.ru/releases/0x48k-whitecat.c |
Молоток! Лог-клинер что надо :) Все работает как положено, но нашёлся один недостаток - в процессе своей работы программа создает гигантские временные файлы, и как получилось в моем случае, размер временного файла превысил максимально допустимый размер файла для ext2 - 2Gb, и программа получила SIGKILL, а временный файл остался. Это может привести например к тому, что логи могут быть вычищены неполностью(потому что whitecat немедленно завершается). Исходя из того что на большинстве Linux-серверов используется именно ext2 в качестве корневой ФС, предлагаю добавить функцию периодической проверки размера временного файла, и если размер временного файла превышает определенный допустимый размер (например 1 Gb) - то удалить все что уже не используется из этого файла(вычистить его), либо если какие-то данные из этого файла все еще нужны, то скинуть их в отдельный файл. Так клинер не превысит пределов на размер файла, и спокойно завершит все что ему положено. Ну или придумать что-нить помудрее :D
Прикладываю скрин, там то, что произошло при работе whitecat :) http://img254.imageshack.us/img254/8...2312rk6.th.jpg |
HaOS, молодец. Спасибо за тестирование (+++ даю) - обязательно что-нибудь придумаю. Если есть ещё предложения по совершенствованию - пиши, исправим! А исходный файл какого размера был? Какая там ФС для /var/log ? На скриншоте ничего не вижу.
|
Да. Логклинер тоже очень нам нужен! Но руткиты важнее.. Кстати он корректно работает под FreeBsd ???
|
Цитата:
|
Начнем с компилляции
In file included from whitecat.c:33: /usr/include/utmp.h:54: error: syntax error before "int32_t" /usr/include/utmp.h:63: error: syntax error before "int32_t" whitecat.c:38:21: lastlog.h: No such file or directory whitecat.c: In function `clear_uwbtmp': whitecat.c:247: error: structure has no member named `ut_user' whitecat.c:247: error: structure has no member named `ut_user' whitecat.c: In function `clear_lastlog': whitecat.c:289: error: structure has no member named `ll_time' Это 6.2-STABLE FreeBSD . Тут, как я понимаю, нету библиотеки. Но я могу ошибаться. |
Ok, значит на FreeBSD не так всё ажурно как в Linux. Но эти ошибки не проблема - исправим. Спасибо.
|
Цитата:
Цитата:
|
хм... странно получается. Если /var/log тоже на корневом разделе, то как там может поместиться исходный файл-лог больше чем допустимый размер файла? Временный файл должен быть аналогичен по размеру или меньше исходного. А исходники whitecat.c здесь непричём =) Протестируй ещё раз, пожалуйста, и посмотри размеры файлов предварительно. И ещё раз глянь внимательно в /etc/fstab.
|
Цитата:
Код:
root@HaPriS(21:25:03)/tmp # gcc -o whitecat whitecat.cЦитата:
Код:
root@HaPriS(21:43:04)/tmp # df -h /var/log |
| Время: 13:22 |