Понедельник, 07.10.2024, 23:22
Dansguardian+ и не только
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
страница заблокирована - почему?
galkin24Дата: Суббота, 17.03.2012, 22:35 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Хотелось бы знать простой способ, как узнать почему именно страница заблокирована. ( пока приходится смотреть лог DG. только не при любой кодировке удаётся прочитать , иногда просто ...+..+..... а это порой важно.
 
VitoДата: Суббота, 17.03.2012, 23:06 | Сообщение # 2
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Такое происходит по причине другой кодировки строки в логе.
По-умолчанию локаль консоли UTF-8, а в лог пишутся строки в самых разных кодировках, русских целых три кодировки: UTF-8, она показывается сразу, WINDOWS-1251, KOI-8R они показываются кракозябрами.
Остальные кодировки китайские, японские и пр. тоже будут кракозябрами.
Рекомендую вам отключить списки на китайском и японском, поскольку большинство проблем с ошибочной блокировкой связано с этими списками.
Частично проблема решена в веб-интерфейсе на основе одного скрипта, написанного мной уже давно.
Смысл работы очень простой в списках в самом начале прописывается строка
#listcategory: "rus_porno_KOI8-R"
#listcategory: "rus_porno_UTF-8"
#listcategory: "rus_porno_WIN-1251"
соответственно кодировке этого файла и категории списка
Так как сайты обычно в одной кодировке, то при срабатывании фильтра, в лог пишется название категории, если конечно оно задано.
Дальше алгорим скрипта простой, его я могу выложить в понедельник, когда выйду на работу.
Получаем строку лога и ищем в ней один из маркеров (_KOI8-R _UTF-8 _WIN-1251),
если маркер найден, конвертируем строку в соответствующую кодировку и выводим на экран, если ни одного маркера нет выводим как есть,
потом повторяем для следующей строки.
В результате, все русские фразы в логе отображаются корректно smile
 
galkin24Дата: Суббота, 17.03.2012, 23:11 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
подождём до понедельника cool
 
VitoДата: Воскресенье, 18.03.2012, 14:18 | Сообщение # 4
Подполковник
Группа: Администраторы
Сообщений: 131
Репутация: 2
Статус: Offline
Скрипт для просмотра лога в правильной кодировке.
Написан на Perl, требуется perl-модуль Text::Iconv
Работает с UTF-8, WIN-1251 и KOI8-R кодировками,
По-умолчанию скрипт преобразует строки с фразами в UTF-8 кодировку.
Но по такому же принципу можно сделать для любой другой кодировки и любой другой локали,
всего лишь изменив скрипт.

Для правильной работы скрипта в начале ваших списков фраз должны быть строки, типа
#listcategory: "rus_porno_KOI8-R"
#listcategory: "rus_porno_UTF-8"
#listcategory: "rus_porno_WIN-1251"
соответственно кодировке этого файла и категории списка

копируете файл fixlogdans в /usr/local/bin
устанавливаете права на исполнение

Используете с помощью конвеера:
Пример 1. Просмотр лога на лету.
tail -f -n 20 /var/log/dansguardian/access.log | fixlogdans

Пример 2. Сохранение исправленного файла в другой
cat /var/log/dansguardian/access.log | fixlogdans > /var/log/dansguardian/my_fix.log

Пример 3. Просмотр последних пяти записей о блокировке по фразам
cat /var/log/dansguardian/access.log | grep Weighted | tail -n 5 | fixlogdans

Если скрипт выдает ошибку, проверьте наличие установленного модуля Text::Iconv
Скорее всего пакет с модулем будет называться libtext-iconv-perl или похожим образом, просто установите его из репозитория.
Прикрепления: fixlogdans.noext (0.3 Kb)
 
galkin24Дата: Воскресенье, 18.03.2012, 21:34 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
завтра попробую, сегодня от сервера я уже ушёл домой
 
  • Страница 1 из 1
  • 1
Поиск:

Сайт управляется системой uCoz